笔记 | 青训营

117 阅读1分钟

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方法接收服务器的响应,并将其打印出来。