图解HTTP网络(一)

第一章

网络基础TCP/IP

  • TCP/IP是互联网相关的各类的协议族的总称
  • TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层
    • 应用层决定了向用户提供应用服务时通信的活动
    • 传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
      • 在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)
    • 网络层用来处理在网络上流通的数据包。数据包是网络传输的最小数据单位
    • 链路层(又名数据链路层,网络接口层)用来处理连接网络的硬件部分

与HTTP关系密切的协议:IP、TCP和DNS

  • IP(Internet Protocol)网际协议位于网络层
  • ARP是一种用来解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址
  • TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方
  • TCP协议的三次握手:
    • 发送端首先发送一个带SYN标志的数据包给对方。
    • 接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。
    • 发送端再回传一个带ACK标志的数据包,代表“握手”结束。

负责域名解析的DNS服务

  • 它提供域名到IP地址之间的解析服务
  • DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务

URI和URL

  • URI(统一资源标识符)。
  • URL(Uniform Resource Locator,统一资源定位符)。
  • 规定统一的格式可以方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。
  • 资源的定义是“可标识的任何东西”。除了文档文件、图像或服务(例如当天的天气预报)等能够区别于其他类型的,全都可以作为资源。
  • 标识可表示的对象。也称为标识符
  • 协议方案是指访问资源所使用的类型名称
  • URI用字符串标识某一互联网
  • URL包含的内容:登录信息、服务器地址、服务器端口号、带层次的文件路径、查询字符串、片段标识符

第二章

HTTP是不保存状态的协议

  • HTTP是一种不保存状态,即无状态(stateless)协议

告知服务器意图的HTTP方法

  • GET:获取资源
  • POST:传输实体主体
  • PUT:传输文件
  • HEAD:获得报文首部
  • DELETE:删除文件
  • OPTIONS:询问支持的方法
  • TRACE:追踪路径
  • CONNECT:要求用隧道协议连接代理
  • 管线化技术出现后,不用等待响应亦可以直接发送下一个请求
  • Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie

第三章

请求报文及响应报文的结构

  • 通用首部、请求首部、响应首部和实体首部

编码提升传输效率

  • 编码的操作需要计算机来完成,因此会消耗更多的CPU等资源
  • 通过在传输时编码,能有效地处理大量的访问请求
  • HTTP报文的主体用于传输请求或响应的实体主体
  • compress(UNIX系统的标准压缩)
  • gzip(GNU zip)
  • deflate (zlib)
  • identity(不进行编码)
  • 通过把数据分割成多块,能够让浏览器逐步显示页面
  • 分块传输编码:把实体主体分块的功能
    • 每一块实体主体都会使用十六进制标记大小
    • 最后一块实体主体会使用“o(CR+LF)”来标记

发送多种数据的多部分对象集合

  • MIME(Multipurpose Internet Mail Extensions,多用途因特网邮件扩展)机制:可以在邮件里写入文字并添加多份附件
  • multipart/formdata
    • 在Web表单文本上传时使用
  • multipart/byteranges
    • 状态码206(Partial Content, 部分内容)响应报文包含了多个范围的内容时使用
  • multipart/formdata
  • multipart/byteranges

获取部分内容的范围

  • 指定范围发送的请求叫做范围请求(Range Request)
  • 会用到首部字段Range来指定资源的byte范围
  • 针对范围请求,响应会返回状态码为206 Partial Content的响应报文

内容协商返回最合适的内容

  • 内容协商机制是指客户端和服务器端就相应的资源内容进行交涉,然后提供给客户端最为合适的资源,内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准
  • 服务器驱动协商
  • 客户端驱动协商
  • 透明协商
posted @ 2021-06-14 01:35  zonkidd  阅读(89)  评论(0编辑  收藏  举报