嵌入式处理器网络服务器;将信息从浏览器传递到服务器
Embedded processor web server; passing information from browwer to server
我有一个在 Atmel 嵌入式处理器上运行的简单 Web 服务器。它是一个 Cortex M4,它只是 运行 FreeRTOS 作为一个 OS;这不是高性能处理器。
我可以让它 [Atmel 处理器] 通过在 Firefox 中输入来提供一个页面:
192.168.0.200
这会呈现一个带有下拉框和提交按钮的页面,使我能够将数据传回服务器以控制硬件。
我正在使用下面的HTML。请注意,它看起来有点奇怪,因为它在 C 字符串中:
"<form> \
<select name=\"group\"> \
<option value=\"10\">10</option> \
<option value=\"11\">11</option> \
<option value=\"12\">12</option> \
<option value=\"Broadcast\">255</option> \
</select> \
<input type=\"submit\" value=\"Submit\"> \
</form>"
你可以看到,在浏览器的地址栏中,有这样的东西:
192.168.0.200/?组=4
当嵌入式处理器上的 Web 服务器收到该消息时,我可以愉快地解析该行,提取组号并对其进行操作。
但是,当我得到
时,我必须将另一个页面发送回浏览器
192.168.0.200/?组=4
消息进入 Atmel 处理器。否则我会收到超时消息。我可以愉快地再次发回原始页面并且它基本上可以工作,但是发回页面会重置下拉框已更改的值。
有没有办法让浏览器发送一条服务器可以解析的消息,而不必再次发送整个页面?我想我需要使用类似于 POST 命令的东西,但我不知道如何从网页上执行此操作。我应该说我在 C 方面有经验,但除了我最近几天所学的知识外,没有 HTML 知识,所以这可能是一件容易的事,完全可以避免我在本周的所有学习中死记硬背!
我不想 to/assume 我不能使用 Javascript,因为我有一个如此简单的服务器,我需要让它尽可能简单。
谢谢!
Is there a way of making the browser send a message that the server can parse, but not have to send out the full page again?
忘掉浏览器吧。
让服务器响应 204 No Content
而不是 200 OK
响应。
If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent's active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent's active view.
I don't want to/assume I can't use Javascript, because I have such a simple server I need to keep it as simple as possible.
JavaScript 运行客户端。你不需要服务器做任何复杂的事情来服务 JS。您甚至可以将其嵌入到 HTML 文档中。
您可以使用Ajax而不是无内容响应来解决您的问题。
我有一个在 Atmel 嵌入式处理器上运行的简单 Web 服务器。它是一个 Cortex M4,它只是 运行 FreeRTOS 作为一个 OS;这不是高性能处理器。
我可以让它 [Atmel 处理器] 通过在 Firefox 中输入来提供一个页面:
192.168.0.200
这会呈现一个带有下拉框和提交按钮的页面,使我能够将数据传回服务器以控制硬件。
我正在使用下面的HTML。请注意,它看起来有点奇怪,因为它在 C 字符串中:
"<form> \
<select name=\"group\"> \
<option value=\"10\">10</option> \
<option value=\"11\">11</option> \
<option value=\"12\">12</option> \
<option value=\"Broadcast\">255</option> \
</select> \
<input type=\"submit\" value=\"Submit\"> \
</form>"
你可以看到,在浏览器的地址栏中,有这样的东西:
192.168.0.200/?组=4
当嵌入式处理器上的 Web 服务器收到该消息时,我可以愉快地解析该行,提取组号并对其进行操作。
但是,当我得到
时,我必须将另一个页面发送回浏览器192.168.0.200/?组=4
消息进入 Atmel 处理器。否则我会收到超时消息。我可以愉快地再次发回原始页面并且它基本上可以工作,但是发回页面会重置下拉框已更改的值。
有没有办法让浏览器发送一条服务器可以解析的消息,而不必再次发送整个页面?我想我需要使用类似于 POST 命令的东西,但我不知道如何从网页上执行此操作。我应该说我在 C 方面有经验,但除了我最近几天所学的知识外,没有 HTML 知识,所以这可能是一件容易的事,完全可以避免我在本周的所有学习中死记硬背!
我不想 to/assume 我不能使用 Javascript,因为我有一个如此简单的服务器,我需要让它尽可能简单。
谢谢!
Is there a way of making the browser send a message that the server can parse, but not have to send out the full page again?
忘掉浏览器吧。
让服务器响应 204 No Content
而不是 200 OK
响应。
If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent's active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent's active view.
I don't want to/assume I can't use Javascript, because I have such a simple server I need to keep it as simple as possible.
JavaScript 运行客户端。你不需要服务器做任何复杂的事情来服务 JS。您甚至可以将其嵌入到 HTML 文档中。
您可以使用Ajax而不是无内容响应来解决您的问题。