HTTP

38 阅读1分钟

HTTP的报文格式

image.png

1. URL的基本结构

一个标准URL通常包含以下部分(以https://www.example.com:443/path/to/page?key=value#section 为例):

  • 协议(Scheme)https://
    表示访问资源的协议(如httpftpmailto)。
  • 域名(Host)www.example.com
    资源所在服务器的地址,也可用IP(如192.168.1.1)。
  • 端口(Port):443(可选)
    默认隐藏(HTTP默认80,HTTPS默认443)。
  • 路径(Path)/path/to/page
    资源在服务器上的具体位置。
  • 查询参数(Query)?key=value(可选)
    ?开头,用&分隔多个参数(如?id=1&lang=en)。
  • 片段(Fragment)#section(可选)
    指向页面内的特定锚点(如HTML的<div id="section">)。

请求报文的请求行

image.png

响应报文的状态行

image.png

HTTP和HTTPS的区别

HTTP

  • 无状态:协议对客户端没有状态存储,没有物理记忆能力,访问一个网站需要反复进行登陆操作
  • 无连接:HTTP/1.1之前,由于无状态的特点,客户端每次请求都需要进行三次握手四次挥手,和服务器重新建立连接,服务器并不能区分是否已经响应过用户的请求。
  • 基于请求和响应:由客户端发起请求,服务端进行响应。
  • 通常使用明文,请求和响应不会对通信方进行确认,无法保证数据的完整性。

HTTPS

  • 内容加密:采用混合加密技术,中间者无法直接查看明文内容。
    • 客户端使用对称加密生成的密钥对传输的数据进行加密,再使用非对称加密的公钥再对密钥进行加密。
  • 验证身份:需要通过证书验证客户端访问的是自己的服务器。
  • 保护数据的完整性:防止传输的内容被中间人冒充或篡改。

HTTP通信

image.png