Python GET请求的格式设置

Python GET请求的格式设置,python,http,networking,get,carriage-return,Python,Http,Networking,Get,Carriage Return,我正在用python在TCP客户机中发送数据,下面的教程告诉我如何发送: “GET/HTTP/1.1\r\n主机:google.com\r\n\r\n” 我尝试在这里查找有关格式的信息,但我对GET实际请求的内容或此请求将发送回的数据感到困惑,还有,回车和换行符的用途是什么?如果您想在Python中编写低级HTTP GET,那么您可以创建一个TCP套接字,并使用头参数选择性地编写GET命令,然后读取响应 HTTP请求以请求行开始(例如GET/HTTP/1.1,带有终止的CRLF或“\r\n”)。

我正在用python在TCP客户机中发送数据,下面的教程告诉我如何发送:

“GET/HTTP/1.1\r\n主机:google.com\r\n\r\n”


我尝试在这里查找有关格式的信息,但我对GET实际请求的内容或此请求将发送回的数据感到困惑,还有,回车和换行符的用途是什么?

如果您想在Python中编写低级HTTP GET,那么您可以创建一个TCP套接字,并使用头参数选择性地编写GET命令,然后读取响应

HTTP请求以请求行开始(例如GET/HTTP/1.1,带有终止的CRLF或“\r\n”)。请求行后面是零个或多个标头,每个标头以CRLF结尾。最后一个CRLF序列标记HTTP请求的请求行和头部分的末尾,后面是可选的消息体。请求结构在本手册第5节中定义

导入套接字
#主机和端口映射到URLhttp://localhost:8000/
host=“localhost”
端口=8000
尝试:
sock=socket.socket()
sock.connect((主机、端口))
sendall(“GET/HTTP/1.1\r\nHost:google.com\r\n\r\n.encode())
#继续从套接字读取,直到没有更多数据响应为止
尽管如此:
响应=sock.recv(8096)
如果len(响应)==0:
打破
打印(答复)
例外情况除外,例如:
打印(“I/O错误:”,ex)
HTTP响应的第一行是状态行,包括以\r\n结尾的状态代码,后跟响应头

HTTP/1.1 200 OK\r\n
Content-type: text/plain\r\n
Content-length: 14\r\n
\r\n
This is a test
您需要解析状态行和头,以确定如何解码HTTP响应的消息体

HTTP响应的详细信息见本手册的第6节

或者,该模块在一个简单的API中实现HTTP规范

使用请求API生成HTTP GET的示例

导入请求
url='1〕http://localhost:8000/'
response=requests.get(url)
打印(“状态代码:”,响应。状态代码)
打印(“内容:”,响应.文本)

答案在HTTP规范中。除了当前的HTTP规范是RFC 7230&friends.Ack之外,其他都很好。7230&对于初学者来说,朋友是压倒性的。旧版本通常更容易理解基础知识,甚至更容易掌握基本概念,但一些细节已经过时。