zoukankan      html  css  js  c++  java
  • 《图解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认证(基于表单认证)

  • 相关阅读:
    计算机网络七:中继器、集线器、交换机、路由器、网桥和网关
    vue 简易计算器
    express mongodb 连接池
    vue过度动画
    Webpack 学习笔记(0)
    git 学习笔记
    MySQL 权限笔记
    java gui笔记
    3d tranform css3
    java 多线程笔记
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8678014.html
Copyright © 2011-2022 走看看