Http的首部和载荷的分割符是"\r\n"还是"\n\n"
看 mozilla 的 HTML文档 的时候,并没有提到起始行、请求头、空行、消息体中间的分隔符应该用 "\r\n"
还是 "\n\n"
又看到下面两篇文章,用 "\r\n"
还是 "\n\n"
都有!
How To Use Linux epoll with Python
import socket
EOL1 = b'\n\n'
EOL2 = b'\n\r\n'
response = b'HTTP/1.0 200 OK\r\nDate: Mon, 1 Jan 1996 01:01:01 GMT\r\n'
response += b'Content-Type: text/plain\r\nContent-Length: 13\r\n\r\n'
response += b'Hello, world!'
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversocket.bind(('0.0.0.0', 8080))
serversocket.listen(1)
connectionclient, address = serversocket.accept()
request = b''
while EOL1 not in request and EOL2 not in request:
request += connectionclient.recv(1024)
print(request.decode())
connectionclient.send(response)
connectionclient.close()
serversocket.close()
Http的首部和载荷的分割符是"\r\n"还是"\n\n"
无意中我在度娘上漫无目的建索有用的信息时,发现有人把Http的首部和载荷分割符写作“\n\n”,但是我记得这个分割应该是"\r\n"(CRLF行),于是司马当活马试了一下,当我把程序再次烧录后,我看到了等待已久http/1.x 200 ok(终于可以直面产品狗了....),在又增加了应用层代码后,终于顺利的完成了这个项目。
————————————————
版权声明:本文为CSDN博主「火云邪神第二」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aa16222...
请问用 "\r\n"
还是 "\n\n"
是未定义行为吗?取决于具体的浏览器、服务器实现是吗?
回答:
\r\n
在 RFC 2616 的 2.2 章节中有定义的。
HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
protocol elements except the entity-body (see appendix 19.3 for
tolerant applications). The end-of-line marker within an entity-body
is defined by its associated media type, as described in section 3.7.
以上是 Http的首部和载荷的分割符是"\r\n"还是"\n\n" 的全部内容, 来源链接: utcz.com/p/938254.html