上一篇:简单的HTTP服务器搭建| 手把手教你入门Python之一百一十
下一篇:根据不同的请求返回不同的内容| 手把手教你入门Python之一百一十二
本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。
Http请求头
上一节中主要讲了响应头,我们并没有关注请求头里到底有哪些东西,运行如下代码:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('192.168.31.199', 8090))
server_socket.listen(128)
while True:
client_socket, client_addr = server_socket.accept()
data = client_socket.recv(1024).decode('utf8')
print('接收到{}的数据{}'.format(client_addr[0], data))
client_socket.send('HTTP/1.1 200 OK\n'.encode('utf8'))
client_socket.send('content-type:text/html\n'.encode('utf8'))
client_socket.send('\n'.encode('utf8'))
client_socket.send('<h1 style="color:red">hello world</h1>'.encode('utf8'))
浏览器访问结果:
控制台输出如下:
请求头第一句 GET / HTTP/1.1 表示:
- GET 请求方式,GET/POST/PUT/DELETE... ...
- / 请求的路径
- HTTP/1.1 HTTP版本号
此时我们改变访问的路径:
可以看到请求头第一句变为 GET /index.html?name=jack&age=18 HTTP/1.1,说明中间部分还可以表示请求的参数。
请求头第二句 Host: 192.168.31.199:8090 表示请求的服务器地址。
其他的信息暂时不用管了,是浏览器相关的信息,简单解释UA:用户代理,最开始设计的目的,是为了能从请求头里辨识浏览器的类型。
IP地址的绑定
ip地址只能通过ip地址访问,若将绑定的地址改为127.0.0.1,就可以在浏览器中用这个地址来访问到(或访问localhost):
前几节中我们使用到的0.0.0.0也能表示本机,它表示所有的可用的地址,如果使用127.0.0.1,则只能通过本机来访问,别人无法访问,可见如果在云服务器上部署,使用0.0.0.0更为方便。