当客户端使用HTTP协议连接时,服务器接收什么?

2024-10-03 15:30:43 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所知,如果我使用HTTP协议连接到服务器,服务器本身只接收应用层(而计算机处理包含协议、ip等的其他层)

考虑到这一点,我试图检查服务器接收到的请求是否是GET请求,以及它是否在HTTP协议的1.1版本中。代码如下:

request = Client.recv(4096)

#Check if it's a valid HTTP request and get the path

isntHTTP = True
counter = 0
path = ''
for letter in range(0, len(request)-1):
    if request[letter] == ' ':
        counter += 1
    if counter == 2:
        if request[letter+1:letter+14] == 'HTTP/1.1\\r\\n':
            isntHTTP = False
        break
    if counter == 1:
        path += request[letter]
if request[:3] != 'GET' or isntHTTP:
    #send code 500 (add later)
    Client.close()
    continue

出于某种原因,此代码总是关闭客户端并继续。all在while循环中,因此“continue”命令不是问题所在


Tags: path代码服务器clienthttp协议getif