我正在学习Python;具体来说,我正在学习网络体系结构和HTTP请求。下面的课程示例演示如何编写简单的web浏览器。
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('data.pr4e.org', 80))
cmd = 'GET http://data.pr4e.org/romeo.txt HTTP/1.0\r\n\r\n'.encode()
mysock.send(cmd)
while True:
data = mysock.recv(512)
if (len(data) < 1):
break
print(data.decode(),end='')
mysock.close()据我了解,.connect()函数启动双向通信,有效地“打开隧道”.语法是socketname.connect(('address'),port)
但是,我想知道该函数与描述的这里连接方法之间是否有区别。这个语法是:连接服务器:端口
具体而言,何时使用其中一种或另一种合适?
发布于 2019-06-14 21:18:55
.connect()函数将TCP套接字连接到远程服务器,远程服务器允许将数据发送到服务器并从服务器接收。在您的示例中,您使用TCP套接字发送HTTP命令,并接收相应的HTTP响应。
HTTP CONNECT方法是完全不同的。它是一种HTTP命令,包括GET (您正在使用的)、HEAD、POST、PUT等,可以通过连接的套接字发送。CONNECT与HTTP隧道有关(即让web服务器代理您对另一台服务器的请求)。
发送CONNECT命令时,基本上是指示服务器将未来的HTTP命令转发到不同的HTTP服务器。因此,这就像是在某种程度上“连接”到另一个服务器。
https://stackoverflow.com/questions/56605040
复制相似问题