假设我想从 http://www.xxx.ууу/example.pdf下载一个名为 example.pdf 的文件
可能,我这样发送 GET 请求:
GET /example.pdf HTTP/1.1␍␊
Host: www.xxx.yyy␍␊
␍␊
但接下来是什么?
http 标头的交换是什么样的?
假设我想从 http://www.xxx.ууу/example.pdf下载一个名为 example.pdf 的文件
可能,我这样发送 GET 请求:
GET /example.pdf HTTP/1.1␍␊
Host: www.xxx.yyy␍␊
␍␊
但接下来是什么?
http 标头的交换是什么样的?
我假设您已阅读有关 HTTP 协议的 Wikipedia 文章。如果您只需要更多示例,我强烈建议您下载 Wireshark。Wireshark 是一个非常强大的数据包嗅探器,它可以让你观察你和任何网站之间的数据包通信。此外,它实际上会分解数据包并以更“人性化”的方式告诉您它们的含义。它有一些学习曲线,但它可以教你很多关于包括 HTTP 在内的许多不同协议的知识。
我不确定您的最终目标是什么,但您可以通过Live HTTP Headers Firefox 插件查看实时 http 标头交互。在 Chrome 中也可以,但需要做更多的工作。
检查HTTP 1.1 RFC。
您可能想查看http://www.w3.org/Protocols/rfc2616/rfc2616.html。而且,很少需要重新创建协议。
要回答此类 GET 请求,应传递具有以下标头的数据包:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 6475593
Content-Type: application/x-msdownload
Etag: "qwfw473usll"
Last-Modified: Sun, 18 Jul 2021 12:02:31 GMT
Server: Caddy
Date: Sun, 18 Jul 2021 12:03:47 GMT
在最后一行之后,您必须指定要传输的文件的 2 个 CRLF 和行字节。