这本书感觉一个周末就可以读完

传输协议/HTTP相关知识

HTTP/HTTPS定义

  • 超文本传输协议/超文本安全传输协议

HTTP 的诞生主要是为了解决文本传输的难题

TCP/IP与HTTP的关系

  • TCP/IP 是互联网相关的各类协议的总称
  • TCP/IP 采取分层管理(4层)
    • 应用层 :决定向用户提供服务时通信的活动 【HTTP】【FTP】【DNS】
    • 传输层 : 提供处于网络链接中两台计算机之间的数据传输 【TCP】【UDP】
    • 网络层 : 处理在网络上流动的数据包 【IP】数据包是网络传输的最小单位
    • 数据链路层 : 用来处理连接网络的硬件部分 【硬件的设备驱动】【网卡】【光纤】

HTTP 是TCP/IP的子集,属于TCP/IP分层结构中的应用层

IP协议、TCP协议、DNS 名词解释

  • IP协议 :TCP/IP协议集合中的网络层,主要作用的将数据包传送给对方要确保数据能正确的传输给目标方,需具备以下条件 1. IP地址 :指明节点被分配到的地址 【IP地址通常是可变的】 2. MAC地址 :网卡所属的固定地址 【MAC地址通常是不变的】
  • TCP协议 :TCP属于传输层,提供可靠的字节流服务要确保数据能真情的传输给目标方,TCP采取三次握手的形式,确保数据成功发送!
  • DNS : 属于应用层,主要负责域名解析即将域名解析为IP,或将IP转换为对应域名

    TCP/IP的通信流程

    image.png
  1. 客户端在应用层发起http请求
  2. TCP传输层将数据(HTTP请求 报文)进行分割,并在各个报文上打上标记序号以及端口号,然后转发给网络层
  3. 网络层(IP协议)增加作为通信目的地的MAC地址后转发给数据链路层
  4. 接收端服务器在数据链路层接收到数据,按序往上层发送,一直到应用层。
  5. 当响应数据传输到应用层,一次请求完成

    从输入URL 到页面展示的过程

    image.png

    HTTP协议介绍

  • 无状态

HTTP是无状态的协议,为了实现状态保持功能,后续引入cookie 技术

  • 持久链接:keep-alive

在HTTP初始协议中,每进行一次HTTP通信,就要断开一次TCP连接,大量的TCP连接和断开会增加通信量的开销。
为了解决上述问题,HTTP/1.1 和一部分HTTP/1.0 提出持久连接的方法。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态

  • 管线化

持久连接使得多数请求以管线化的方式发送成为可能,以往发送请求后需等待并收到响应,才能发送下一个请求,管线化技术实现后不用等待响应亦可直接发送下一个请求。【并行发送多个请求】

  • 使用Cookie 管理状态

cookie 技术通过在请求和响应报文中写入Cookie 信息来控制客户端的状态

  1. 根据响应报文的set-cookie 的首部字段,通知客户端写入cookie
  2. 当下次客户端向服务器发送请求时自动在请求报文中加入Cookie 的值发送给客户端