图解HTTP-读书分享二

6次阅读

共计 821 个字符,预计需要花费 3 分钟才能阅读完成。

第二章:简单的 HTTP 协议

2.1 HTTP 协议用于客户端和服务器端的通信

2.2 通过请求和响应的交换达成通信

  • 客户端发送给服务器端的 请求报文
  • 请求方法
  • 请求 URI
  • 协议版本
  • 可选的请求首部字段
  • 内容实体
  • 服务器端返回客户端的 响应报文
  • 协议版本
  • 状态码(200,500,301,404)
  • 状态码解析语句
  • 可选的响应首部字段
  • 响应主体

2.3 HTTP 是无状态协议

  • HTTP 协议自身不对请求和响应之间的通信状态进行保存
  • 优点:

更快的处理大量事务,确保协议的可伸缩性。协议本身并不保留之前一切的请求和响应报文信息

  • 缺点:

无状态协议导致在很多业务场景下不能友好支持业务处理,登录状态、聊天室通信、直播平台等

  • 解决方法:
  • HTTP1.1 虽然还是无状态协议,但为了保持状态引入了 cookie
  • 第三方异步通信框架,支持 TCP 长连接,如 PHP 的 Swoole,Java 的 netty,底层 C,C++ 等方式

2.4 请求 URI 定位资源

  • HTTP 协议使用 URI 定位互联网上的资源

2.5 告知服务器意图的 HTTP 方法

  • HTTP1.1 中可使用的方法
  • GET 获取资源
  • POST 传输实体主体
  • PUT 传输文本,类似 FTP 文本上传
  • HEAD 获取报文头部信息
  • DELETE 删除文件
  • OPTIONS 询问支持的方法
  • TRACE 追踪路径

2.6 持久连接 节省通讯量

  • 持久连接特点:只要任意一端没有明确提出断开连接,则保持 TCP 连接状态
  • 在 HTTP1.1 中,所有的连接默认都是持久连接
  • 优点:
  • 减少了 TCP 连接的重复建立和断开造成的额外开销,减轻了服务器的负载
  • 可实现异步通信

2.7 使用 cookie 的状态管理

  • 概念:cookie 技术通过在请求和响应报文中写入 cookie 信息来控制客户端的状态
  • 步骤:
  • cookie 会根据从服务器端发送的响应报文的 Set-Cookie 首部字段信息,通知客户端保存 cookie。
  • 当下次客户端再次发送请求,自动在请求报文中添加 cookie
  • 服务器端接收 cookie 值,检查从哪个客户端发送的请求,并对比服务器端 session 信息,最后得到之前状态信息
正文完
 0