第一章
网络基础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的响应报文
内容协商返回最合适的内容
- 内容协商机制是指客户端和服务器端就相应的资源内容进行交涉,然后提供给客户端最为合适的资源,内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准
- 服务器驱动协商
- 客户端驱动协商
- 透明协商