zoukankan      html  css  js  c++  java
  • 《图解HTTP》阅读总结

    前言:《图解HTTP》是一本图文并茂的好书,讲解地很详尽。目前我只完整地读了一遍,很多地方知其然不知其所以然,接下来打算抽空再读一次。这篇博文只是做个粗略记录,第二遍读完会再来编辑细化。

    1.HTTP协议的发展

      ·基本概念提出于1989.3,借助HyperText连接成可相互参阅的万维网。(至今已经提出3项技术HTTP、HTML、URL)

      |

      ·1993.1 浏览器鼻祖Mosaic问世,HTTP 0.9出现。

      |

      ·1994.12 Netscape 发布 Netscape Navigator 1.0, 1995 微软发布 Internet Explorer1.0、2.0, Appach 0.2出现, HTML 2.0发布

      |

      ·1995  浏览器大战开始

      |

      ·1996.5 HTTP 正式作为标准被发布,命名为 HTTP/1.0

      |

      ·1997.1 HTTP /1.1公布,也是目前应用最为广泛的版本

      |

      · 近20年后, HTTP /2.0 还在定制中·······

    2.HTTP协议原理

       TCP/IP 是互联网相关的各类协议总称,HTTP协议便是其中一种。 TCP/IP 协议族按照层次分为:应用层、传输层、网络层、数据链路层。

      其中应用层决定了向用户提供应用服务时的通信服务(DNS、FTP、HTTP..),传输层提供两台计算机之间的数据传输(TCP、UDP),网络层处理网络上流动的数据包,并规定传输路线,链路层处理网络链接的硬件部分。这之中,与HTTP协议密切相关的协议有三,IP、TCP、DNS。

      【客户端输入地址 ->DNS域名解析 -> HTTP协议生成请求报文 ->TCP协议 报文分段、可靠性保障 ->IP协议 搜索对方、中转、传输 -> TCP接收到数据、重组分段的报文数据 ->HTTP 处理报文、之后按照同样的路线返回服务器的处理结果】

      URI:Uniform Resource Identifier 统一资源标识符,绝对URL的格式:协议名+登陆信息+服务器地址+端口号+文件路径+查询字符+片段标识符

    3.HTTP报文结构以及常见字段

      ·HTTP协议的【请求报文】是由【请求方法、请求URI、协议版本、可选首部字段、内容实体】构成。   如下:

    POST  /form/entry HTTP/1.1
    Host: hackr.jp
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 16
    
    name-ueno&age-37

      ·HTTP协议的【响应报文】由【协议版本、状态码、原因短语、可选的首部字段、内容实体】构成。  如下:

    HTTP/1.1 200 OK
    Date: Tue, 10 Jul 2016 06:50:15 GMT
    Content-Length: 362
    Content-Type: text/html
    <html>
    .....

      ·HTTP/1.1中可使用的方法有:

      GET:获取资源
    
      POST:传输实体的主体
    
      PUT:传输文件
    
      HEAD: 获得报文首部
    
      DELETE: 删除文件
    
      OPTION:询问支持方法
    
      TRACE: 追踪路径(容易引发XST,不常用)
    
      CONNECT:要求使用隧道协议链接代理

      ·HTTP /1.1中【请求报文】常见字段:  

    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: zh-CN,zh;q=0.8,en;q=0.6

      ·HTTP /1.1中【响应报文】常见字段:

    Date: Fri, 09 Dec 2016 03:17:01 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Last-Modified: Fri, 18 Apr 2014 08:36:11 GMT
    Access-Control-Allow-Origin: *
    Expires: Fri, 09 Dec 2016 03:27:01 GMT
    Cache-Control: max-age=600
    Content-Encoding: gzip
    X-GitHub-Request-Id: 73C26B2C:0861:1C65A928:584A222D

      ·HTTP/1.1 首部字段一览表:

    Cache-Control 控制缓存行为
    Connection 逐跳首部、连接的管理
    Date 创建报文的日期时间
    pragma 报文指令
    Trailer 报文末端首部一览
    Transfer-Encoding 指定传输编码方式
    Upgrade 升级协议
    via 代理服务器相关信息
    Warning 错误通知
     
    Accept 用户代理可处理的媒体类型
    Accept-Charset 优先的字符集
    Accept-Encoding 优先的内容编码
    Accept-Language 优先的自然语言
    Authorization web认证信息
    Expect 期待服务器的特定行为
    Form 用户电子邮箱
    Host 请求资源所在服务器
    If-Match 比较实体标记(E-tag)
    If-Modified-Since 比较资源更新时间
    If-None-Match 比较实体标记
    If-Range 发送资源未更新时的实体byte请求
    Max-forwards 最大传输逐跳数
    Proxy-Authorization 代理服务器要求客户端的认证信息
    Range 实体字节范围请求
    Referer 请求中URI的原始获取方
    TE 传输编码优先级
    User-Agent HTTP客户端程序信息
     
    Accept-Range 是否解散范围请求
    Age 推算资源创建时间
    E-Tag 资源的匹配信息
    Location 使客户端重新定向指定URI
    Proxy-Authenticate 服务器对客户端的认证信息
    Retry-After 再次发起请求的时机要求
    Server HTTP服务器的安装信息
    Vary 代理服务器缓存的管理信息
    www-Authenticate 服务器对客户端的认证信息
    Allow 可支持的HTTP方法
    Content-Language 实体主体的自然语言
    Content-Length 实体主体大小
    Content-Location 替代对应资源的URI
    Content-MD5 实体报文摘要
    Content-Type 实体主体的媒体类型
    Content-Range 实体主体的位置范围
    Expires 实体主体过期的日期时间
    Last-Modified 资源最后修改日期时间

    4.代理、网关、隧道  

      ·代理:客户端、服务器的中间人(缓存代理、透明代理、非透明代理)

      ·网关:转发其他服务器的通信数据(转化协议)

      ·隧道:客户端、服务器之间中转并保持连接的应用程序(SSL加密)

    5.cookie & session

      ·Cookie的工作机制是用户识别、状态管理。Web网站为了管理用户的状态会通过web浏览器,把一些数据临时写入用户的计算机内。接着当用户访问改web网站时,可通过通信方式取回之前发放的Cookie。

      ·Set-Cookie: 开始状态管理所使用的Cookie信息 【NAME = VALUE、 expires=DATE、path=PATH、domiian=domain、secure、HttpOnly】

      ·Cookie: 服务器接收到的Cookie信息

      ·HTTP协议使用cookie管理的session 实现基于表单的认证:

          【客户端POST(ID+PW) -> 服务器发放Session ID,验证ID+PW并绑定,写入set-cookie字段内向客户端响应  -> 收到包含session ID的cookie,保存在本地,再次请求时自动发送该cookie,

          验证登陆信息。】

    6.HTTPS、SPDY、WebSocket

      ·HTTP的加密(SLS、TLS):HTTP + 加密 + 认证 + 完整性保护 = HTTPS

      ·google在2010发布了消除HTTP瓶颈的SPDY,缩短了50%的页面加载时间。SPDY的功能:【多路复用流、赋予请求优先级、压缩HTTP首部、推送功能、服务器提示功能】。

        ·WebSocket也就是web浏览器与服务器之间全双工通信标准,主要解决AJAX、COMET中XMLHttpRequest附带的缺陷。一旦该通信建立,两端可以传输JSON、XML、HTML、图片等任意格式的数据。

          功能:【推送功能、减少通信量、握手请求、握手响应】

      

    危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。
  • 相关阅读:
    20200721_34代码如何优化以及框架的运用和构建设计
    20200719_33appium应用及H5页面元素定位下
    20200709_29多线程与分布式
    day4_day4_python
    python_day3
    python第二天
    pytihon初学第一天
    移动平均线系列
    网页爬取
    十种经典排序算法
  • 原文地址:https://www.cnblogs.com/mingtan/p/6144757.html
Copyright © 2011-2022 走看看