据我所知,如果我使用HTTP协议连接到服务器,服务器本身只接收应用程序层(计算机处理包含协议,ip等的其他层)。
考虑到这一点,我试图检查我的服务器收到的请求是否是GET请求,以及它是否在1.1版本的HTTP协议中。这是代码:
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
由于某种原因,此代码始终关闭客户端并继续。所有的事情都在一个循环中,所以'继续'命令不是问题。