看 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的首部和载荷分割符写作“\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 章节中有定义的。