《图解HTTP》读书笔记

No1:

发送端在层与层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息。反之,接收端在层于层传输数据时,每经过一层时会把对应的首部消去。

这种把数据信息包装起来的做法称为封装

No2:

IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址

IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本上不会更改。

ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址

No3:

握手过程中使用了TCP的标志(flag)--SYN(synchronize)和ACK(acknowledgement)

发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。

若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包

No4:

URI就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称

URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI的子集

URI格式

No5:

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

No6:

响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成

No7:

HTTP协议自身不对请求和响应之间的通信状态进行保存,即不做持久化处理

No8:

No9:

管线化技术的出现,就能够做到同时并行发送多个请求,而不需要一个接一个的等待响应了。

No10:

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

Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。

服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

No11:

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

实体(entity)作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成

内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接收并负责解码。常用的内容编码:gzip、compress、deflate、identity

No12:

内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。

1)服务器驱动协商

2)客户端驱动协商

3)透明协商=服务器驱动和客户端驱动的结合体

No13:

200 - OK

204 - No Content  成功,没有资源返回

206 - Partial Content  范围请求

3XX - 重定向

  301 - Moved Permanently  永久性重定向

  302 - Found  临时性重定向

  303 - See Other  存在另一个URI,应使用GET方法定向获取请求的资源,采用GET

  304 - Not Modified  允许访问资源,但未满足条件

  307 - Temporary Redirect  临时重定向

4XX - 客户端错误

  400 - Bad Request  请求报文存在语法错误

  401 - Unauthorized  需要HTTP认证,若已请求过,则表示用户认证失败

  403 - Forbidden  拒绝访问

  404 - Not Found  无法找到请求的资源

5XX - 服务器错误

  500 - Internal Serval Error 

  503 - Service Unavailable  服务器正忙

No14:

代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端中间人的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端

网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。

隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。

No15:

每次通过代理服务器转发请求或响应时,会追加写入Via首部信息

使用代理服务器的理由有:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的,等等。比如缓存代理

No16:

利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全

No17:

隧道可按要求建立起一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。隧道本身不会去解析HTTP请求。

No18:

No19:

No20:

HTTP首部字段是构成HTTP报文的要素之一。在客户端与服务器之间以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用

使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容

No21:

HTTP首部字段4种类型:

1)通用首部字段

2)请求首部字段

3)响应首部字段

4)实体首部字段

No22:

Cache-Control指令

缓存请求指令

缓存响应指令

No23:

HTTP/1.1版本的默认连接都是持久连接

No24:

Set-Cookie字段属性

 No25:

HTTP的缺点:

1)通信使用明文(不加密),内容可能会被窃听

2)不验证通信方的身份,因此有可能遭遇伪装

3)无法证明报文的完整性,所以有可能已遭篡改 

No26:

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

HTTP通信接口部分用SSL和TLS协议代替而已

SSL采用一种叫做公开秘钥加密的加密处理方式

HTTPS采用共享秘钥加密和公开秘钥加密两者并用的混合加密机制

No27:

HTTP使用的认证方式

1)BASIC认证(基本认证)--Base64编码方式

2)DIGEST认证(摘要认证)

3)SSL客户端认证--客户端证书认证

4)FormBase认证(基于表单认证)

posted @ 2018-04-11 14:57  嘉禾世兴  阅读(208)  评论(0编辑  收藏  举报