文章目录
  1. 1. 一 web及网络基础
  2. 2. 二 简单的Http协议
  3. 3. 三 HTTP报文内的HTTP信息
  4. 4. 四 返回结果的HTTP状态码
  5. 5. 五 与HTTP协作的web服务器
    1. 5.1. 用单台虚拟机实现多个域名
      1. 5.1.1. 通信数据转发程序:代理、网关、隧道
      2. 5.1.2. 代理
      3. 5.1.3. 网关
      4. 5.1.4. 隧道
      5. 5.1.5. 保存资源的缓存

    《图解HTTP》的前五章笔记。

一 web及网络基础

  1. http 超文本传输协议 -> 超文本转移协议。
  2. www构建技术: 把SGML(标准通用标记语言)作为页面的文本标记语言的HTML(超文本标记语言)作为 文档传递协议的 HTTP,指定文档所在地址的URL(统一资源定位符)
  3. 4层 应用层、传输层、网络层和数据链路层

    网络层:用来处理在网络上的流动的数据包,数据包是网络传输的最小的数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据包传给对方。
    发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。接收端层层消去。。。
    这种把数据信息包装的做法:封装。

  4. ARP协议(地址解析协议):根据通信方的IP地址就可以反查出对应的MAC地址。 IP间的通信依赖MAC地址。

  5. TCP:提供字节流服务,即为方便传输将大块的数据分割成报文段为单位的数据包进行管理。

  6. DNS服务(应用层):域名与IP地址之间的解析。

  7. URI中的协议方案:ftp、mailto、telnet、file。
    http:// 协议方案名 user:pass登录信息(认证) @ www.example.jp(服务器地址):80(服务器端口号) /dir/index.htm(带层次的文件路径)?uid=1(查询字符串)#ch1(片段标识符)

二 简单的Http协议

  1. http 不保存状态的协议,即对于发送过的请求或响应都不做持久化处理。后来为了实现期望的保持状态的功能,引入的Cookie技术。

  2. PUT方法用来传输文件,但是http/1.1自身不带验证机制,存在安全问题,任何人都能上传。DELETE:删除文件

    304 无更改 204 put发文件后的返回 无内容、

    OPTIONS:询问支持的方法
    TRACE:追踪路径(可能会通过代理中转)可能会引发XST(跨站追踪)
    CONNECT:用隧道协议连接代理 即 主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。

  3. 为解决TCP连接问题,http有了 持久连接也称为HTTP keep-alive或HTTP connection reuse;即只要任意一端没有明确的提出断开连接,则保持TCP连接状态。

    在HTTP/1.1中所有的连接默认是持久连接。
    持久连接也得是一个请求得到响应后另一个请求才能发出。。。
    管线化(pipelining)可以并行发送多个请。。。

  4. Cookie: 服务器端的Set-Cookie的字段来通知客户端保存cookie。当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去,然后服务器端检查发过来的Cookie,对比服务器上的记录,最后得到之前的状态信息。

三 HTTP报文内的HTTP信息

  1. HTTP通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应。

  2. HTTP报文(message) 报文首部与报文主体用CR+LF 空行划分;
    在不对传输实体进行编码的情况下 报文主体等于实体主体(entity)

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

    常用的内容编码:

  • gzip(GNU zip)
  • compress(UNIX系统的标准压缩)
  • deflate(zlib)
  • identity(不进行编码)

在请求时 报文在传输结束 前不能进行显示,为了能够让浏览器逐步的显示页面,则把实体主体分块,这种功能称为“分块传输编码”。

分块传输编码会将实体主体分成多个块,每块都用十六进制来标记块的大小,并在最后一块用“0(CR+LF)标记”

  1. 发送邮件时因为采用了MIME(多用途因特网邮件扩展)机制,可以处理多个不同类型的数据。,而在MIME扩展中会使用一种称为多部分对象集合的方法。HTTP中也采纳了多部分对象集合的方法,来容纳多份不同类型的数据。

  2. 获取部分内容的范围请求
    客户端请求首部:
    Range:bytes= 5001-10000
    服务器端响应首部:
    Content-Range:bytes 5001-10000/10000

  3. 内容协商返回最合适的内容:内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。

四 返回结果的HTTP状态码

  1. 1XX接收请求正在处理 2XX 成功 3XX 重定向 4XX客户端错误 5XX服务器错误

五 与HTTP协作的web服务器

一台web服务器可搭建多个独立域名的Web网站,也可以作为通信路径上的中转服务器提升传输效率。

用单台虚拟机实现多个域名

HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。如 提供Web托管服务(Web Hosting Service )的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运次那个各自不同的网站,这是利用了虚拟主机(Virtual Host)的功能 。
若两个域名所在的服务器同时部署在同一个服务器上,那使用DNS解析域名后,两者访问的IP地址会相同。

通信数据转发程序:代理、网关、隧道

这些应用程序和服务器可以将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应再转发给客户端。

代理

  1. 代理不改变请求的URI,会直接发送给前方持有资源的目标服务器
    持有资源实体的服务器被称为源服务器
    在通信过程中,可级联多台代理服务器,转发时,需要附加via首部字段以标示出经过的主机信息。

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

  3. 代理有多种使用方法,按两种基准分类。一是是否使用缓存 二是是否会修改报文

网关

  1. 网关的工作机制与代理十分相似,但是网关可以使通信线路上的服务器提供非HTTP协议服务。

隧道

  1. 隧道可以使用SSL等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。

  2. 隧道本身不会解析HTTP请求,接收之后会原样的转发给之后的服务器。

保存资源的缓存

  1. 缓存是指代理服务器或客户端本地磁盘内保存的资源副本。 缓存服务器是是代理服务器的一种。缓存不仅可以在缓存服务器中,还可以在客户端浏览器中。以IE为例,把客户端缓存称为临时网络文件(Temporary Internet File)
文章目录
  1. 1. 一 web及网络基础
  2. 2. 二 简单的Http协议
  3. 3. 三 HTTP报文内的HTTP信息
  4. 4. 四 返回结果的HTTP状态码
  5. 5. 五 与HTTP协作的web服务器
    1. 5.1. 用单台虚拟机实现多个域名
      1. 5.1.1. 通信数据转发程序:代理、网关、隧道
      2. 5.1.2. 代理
      3. 5.1.3. 网关
      4. 5.1.4. 隧道
      5. 5.1.5. 保存资源的缓存