HTTP 1.0 笔记
HTTP 1.0是HTTP协议的第一个版本,它于1996年发布。相较于之前的版本,HTTP 1.0引入了一些重要的特性和改进,如持久连接、虚拟主机支持和缓存机制等。
- 持久连接:允许在单个TCP连接上进行多个HTTP请求和响应,减少建立和关闭连接的开销,提高通信效率。
- 虚拟主机支持:一台服务器上可以承载多个不同域名的网站,通过在请求头中包含"Host"字段来区分不同的虚拟主机。
- 缓存机制:通过在响应头中添加"Cache-Control"字段和"Expires"字段,服务器可以告诉客户端如何缓存响应内容,减少对服务器的请求,提高性能。 下面是一个简单的示例代码,使用HTTP 1.0的GET方法发送一个HTTP请求并打印响应内容:
import socket
def send_request(host, port, path):
# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((host, port))
# 发送HTTP请求
request = f"GET {path} HTTP/1.0\r\nHost: {host}\r\n\r\n"
client_socket.send(request.encode())
# 接收响应并打印内容
response = client_socket.recv(4096).decode()
print(response)
# 关闭套接字
client_socket.close()
# 测试代码
send_request("example.com", 80, "/index.html")
在上面的代码中,我们使用socket模块创建一个套接字,并使用connect方法连接到指定的服务器。然后,构建一个符合HTTP 1.0规范的GET请求,并通过send方法发送给服务器。最后,使用recv方法接收服务器的响应,并将其打印出来。