目录

第1章 了解Web及网络基础

第2章 简单的HTTP协议

第3章 HTTP报文内的HTTP信息

第4章 返回结果的HTTP状态码

第6章 HTTP首部

第7章 确保Web安全的HTTPS


第1章 了解Web及网络基础

1.1 TCP/IP简介

TCP/IP是互联网相关的各类协议族的总称

TCP/IP分为4个层

  1. 应用层:决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务。例如FTP(文件传输协议)、DNS(域名系统)。HTTP协议也属于该层
  2. 传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。有两个协议:TCP(传输控制协议)、UDP(用户数据报协议)
  3. 网络层:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的传输线路到达对方计算机,并把数据包传送给对方
  4. 链路层:处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、网络适配器等等可见部分。硬件上的范畴均在链路层的作用范围之内

TCP/IP通信传输流

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。这种把数据信息包装起来的做法称为封装。

读书笔记 ——《图解HTTP》

1.2 URL和URI

URI(Uniform Resource Identifier):统一资源标识符

URL(Uniform Resource Locator):统一资源定位符

绝对URI格式

读书笔记 ——《图解HTTP》

第2章 简单的HTTP协议

2.1 HTTP请求和响应

HTTP请求必定由客户端发出,而服务端回复响应

请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的

读书笔记 ——《图解HTTP》

响应报文由协议版本、状态码、状态吗的解释原因短语、可选的响应首部字段以及实体主体构成

读书笔记 ——《图解HTTP》

2.2 HTTP无状态性

HTTP是一种无状态协议。对发过的请求或响应都不做持久化处理

可以使用Cookie保持状态

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

2.3 HTTP方法

读书笔记 ——《图解HTTP》

2.4 持久连接

HTTP协议初始版本中,每进行一次HTTP通信就要断开一次TCP连接

HTTP1.1默认连接都是持久连接

特点:只要任意一段没有明确提出断开连接,则保持TCP连接状态

好处:减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务端的负载

2.5 管线化

无须等待响应即可直接发送下一个请求,可以做到同时并行发送多个请求,而不需要一个接一个等待响应

第3章 HTTP报文内的HTTP信息

3.1 HTTP报文

用于HTTP协议交互的信息叫做HTTP报文。

HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行(CR+LF)来划分。通常,不一定要有报文主体

读书笔记 ——《图解HTTP》

3.2 请求报文和相应报文的结构

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

 请求报文和响应报文的首部内容由以下数据组成

  • 请求行:包含用于请求的方法,请求URI和HTTP版本
  • 状态行:包含表明相应结果的状态码,原因短语和HTTP版本
  • 首部字段:包含表示请求和响应的各种条件和属性的各类首部。一般有4种:通用首部、请求首部、响应首部、实体首部
  • 其他:包含HTTP的RFC里未定义的首部(Cookie等)

3.3 报文和实体

报文:HTTP通信中的基本单位,由8位组字节流组成,通过HTTP通信传输

实体:作为请求或响应的有效载荷数据被传输,其内容由实体首部和实体主题组成

通常,报文主题等于实体主题。只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异

第4章 返回结果的HTTP状态码

4.1 状态码的类别

读书笔记 ——《图解HTTP》

4.2 14个有代表性的状态码

  1. 200 OK 表示从客户端发来的请求服务端被正常处理了
  2. 204 NO Content 表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外也不允许返回任何实体的主体。比如,返回204响应,浏览器显示的页面不发生更新。一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用
  3. 206 Partial Content 表示客户端进行了范围请求,而服务器成功执行了这部分GET请求。响应报文中包含由Content-Range指定范围的实体内容
  4. 301 Moved Permanently 永久重定向。表示请求的资源已被分配了新的URI,以后应使用资源现状所指的URI,也就是Location首部字段提示的URI
  5. 302 Found 临时重定向。表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问
  6. 303 See Other 表示请求的资源存在着另一个URI,应使用GET方法定向获取。303状态码明确表示应当用GET请求获取资源
  7. 304 Not Modified 表示请求客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。返回时,不包含任何响应的主体部分。304虽然被划在3XX,但与重定向没有关系
  8. 307 Temporary Redirect 临时重定向。与302一样,但不会从POST变成GET
  9. 400 Bad Request 表示报文中存在语法错误。需修改请求的内容后在再次发送请求
  10. 401 Unauthorized 表示发送的请求需要有通过HTTP认证的认证信息。返回含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用以质询用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口
  11. 403 Forbidden 表示请求资源的访问被服务器拒绝了。未获得文件系统的访问授权,访问权限出现问题等可能发生403错误
  12. 404 Not Found 表示服务器无法找到请求的资源
  13. 500 Internal Server Error 表示服务器端在执行请求时发生错误
  14. 503 Service Unavailable 表明服务器暂时处于超负荷或正在停机维护。

第6章 HTTP首部

6.1 4种HTTP首部字段类型

  1. 通用首部字段:请求报文和响应报文两方都会使用的首部
  2. 请求首部字段:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息
  3. 响应首部字段:从服务端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息
  4. 实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容跟新时间等与实体有关的信息

6.2 首部字段一览

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

6.3  其他首部字段

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

第7章 确保Web安全的HTTPS

7.1 HTTP的缺点

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,所以有可能已遭篡改

7.2 HTTPS简介

HTTPS:使用SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的HTTP

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

读书笔记 ——《图解HTTP》

7.3 HTTPS通信步骤

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

读书笔记 ——《图解HTTP》

 7.4 HTTPS缺点

读书笔记 ——《图解HTTP》

  • SSL的慢分两种。一种是通信慢,另一种是由于大量消耗CPU及内存等资源,导致处理速度变慢
  • 使用HTTPS通信,必须购买证书,需要一部分花费

相关文章: