Kev*_*oyd 2 protocols header http
虽然HTTP无处不在,但它带来了Headers的包袱,在我看来它正变得越来越成问题.我要传输的数据是HTTP标头大小的iota.
许多HTTP标头是可选的.典型的浏览器请求比最小请求大得多,这可能看起来像:
GET /doc HTTP/1.1
Host: example.com
Connection: close
Run Code Online (Sandbox Code Playgroud)
(我可以放心地说这种形式的请求是有效的,因为我在测试Web服务器响应时一直使用它们telnet example.com 80
.)
可能只需省略一些标题即可获得有用的结果.
HTTP请求可能非常小.正如混乱在他的回答中指出的那样,你并不需要发送带有请求的许多标题.唯一的标题是Host.我可以通过使用HTTP 1.0来简化混乱的例子,它不具有持久连接.
GET / HTTP/1.0
Host: example.com
(blank line is necessary)
Run Code Online (Sandbox Code Playgroud)
回复可以同样简单
HTTP/1.0 200 OK
Content-Type: text/html
data content
Run Code Online (Sandbox Code Playgroud)
在这种情况下,HTTP的开销在请求和响应中大约为40个字节.标准TCP数据包为1500字节,因此您在实际数据的响应数据包中有足够的空间.
还有其他HTTP标头,它们确实有价值.您可以包含缓存信息并执行条件GET.您可以使用HTTP/1.1持久套接字来加快后续请求.如果你不想要,你不必使用任何这些东西,但是关于HTTP的一个好处是有一种标准的方法可以在你需要时做更复杂的协议.
至于在JavaME中做最小的HTTP,如果你真的关心每个字节,你可能最好通过使用普通的TCP 套接字来编写自己的简单HTTP客户端.如果您正在与已知服务器通信,则根本不需要实施太多功能.(如果您正在与任意服务器通信,则需要更加注意错误处理,重定向等).
归档时间: |
|
查看次数: |
1162 次 |
最近记录: |