zoukankan      html  css  js  c++  java
  • 图解HTTP(1-4章节)---阅后笔记

    一、告知服务器意图的HTTP方法

    1.1 GET 获取资源

      

    1.2 POST 传输实体主体

         GET也可以传输实体主体,但一般不使用GET,,POST的主要目的不是获取响应的主体内容

    1.3 PUT 传输文件

          不带验证机制,需要配合WEB应用程序的验证机制或采用REST标准的WEB网站,才会开放PUT方法

    1.4 HEAD 获得报文首部

      和GET方法一样,只是不返回主体部分,主要用于确认URI的有效性和资源更新的日期时间等

    1.5 DELETE 删除文件

          不带验证机制,需要配合WEB应用程序的验证机制或采用REST标准的WEB网站,才会开放

    1.6 OPTIONS 询问支持的方法

      查询针对请求URI指定资源支持的方法

    1.7 TRACE 追踪路径

      让服务器端将之前的请求通信返回给客户端的方法,由于容易引发XST攻击,通常不会用。

    1.8 CONNECT 要求用隧道协议连接代理

    二、持久连接节省通信量

    2.1 初始版本中,每进行一次HTTP通信都要断开TCP连接,造成不必要的通信量,如图

    2.2 持久连接 HTTP keep-alive

    优点: 减少TCP连接的重复建立和断开所造成的额外开销,加快WEB页面响应速度

    在HTTP/1.1 ,所有连接默认都是持久连接

    2.3 管线化

    持久化使得管线化成为可能。即 不需要等待响应即可发送下一条请求

    三、HTTP报文

    3.1 概念

    报文分为请求报文和响应报文

    报文内容又分为  报文首部和报文主体,不一定有报文主体

    请求行

      请求报文 ----包含请求URI和HTTP版本

    状态行

      响应报文 ----包含响应结果状态码,原因短语和HTTP版本

    首部字段

      4种首部:通用首部,请求首部,响应首部,实体首部

    其他

      RFC未定义首部,如Cookie

    3.2  报文实体和主体实体的区别

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

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

    3.3 发送多种数据的多部份对象集合

    MIME : 多用途因特网邮件机制,允许处理文本,图片,视频等多个不同类型数据

    multipart/

      form-data: Web 表单上传时使用

      byteranges:状态码206响应报文包含了多个范围的内容时使用

    3.4 范围请求

      情况:遇到网络中断,需要一种可恢复机制,从之前下载中断处恢复下载。

      会用到首部字段 Range 指定资源范围  ----- 思考:后端应该要支持范围请求

      -----响应返回状态码206 partial content响应报文,且对于多重范围的范围请求,响应会在首部字段Content-Type表明multipart/byteranges后返回响应报文,如果后端没有处理范围请求,则全部返回并状态码为200

    3.5 内容协商

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

      Accept

      Accept-Charset

      Accept-Encoding  

      Accept-Language

      Content-Language

      三种类型的内容协商:

      A.服务器驱动协商

        由服务器进行内容协商。以请求的首部字段作为参考,在服务器端自动处理,但对用户来说,以浏览器发送的信息作为判定依据,并不一定能筛选出最优内容。

        

      B.客户端驱动协商

        由客户端进行内容协商的方式。

            

       C.透明协商

          是服务器驱动和客户端驱动的结合体。由服务器端和客户端各自进行内容协商的一种方式。

        

      

    四. HTTP状态码

    4.1 类别

      1XX: 信息性状态码     请求正在处理

      2XX: 成功状态码         请求正常处理完毕

      3XX: 重定向状态码      需要进行附加操作以完成请求

      4XX: 客户端错误状态码       服务器无法处理请求

      5XX:服务器错误状态码         服务器处理请求出错

    4.2    2XX  成功

      200  OK   表示从客户端发来的请求在服务器端被正常处理了

      204 NoContent     表示服务器接受的请求已经成功处理了,但在返回的响应报文不含实体的主体部分;一般在只需要从客户端往服务器发送消息,而对客户端不需要发送新信息内容的情况下使用.

      206  Partial Content    表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求,响应报文包含由Content-Range指定范围的实体内容.

      

    4.3    3XX 重定向

      301  Moved Permanently  永久性重定向.表示请求的资源已被分配了新的URI,以后使用资源现在所指的URI.  如忘记添加斜杠,就会产生301状态码

      302 Found   临时性重定向, 该状态码表示请求的资源被分配了新的URI,希望用户本次可以使用新的URI访问.(禁止将POST方法改变成GET方法,但实际上大家都这么做)

      303 See Other    该状态码表示由于请求对应的资源存在另一个URI,应该使用GET方法定向获取请求的资源.

      当301,302,303 响应状态码返回时,几乎所有浏览器都会把POST改成GET,并删除请求报文中的主体,之后请求会自动再次发送.

      304 Not Modified   该状态码表示客户端发送附带条件的请求时,服务器端运行请求访问资源,但是请求条件未满足(如使用过期缓存),不包含任何响应的主体部分.

      307 Temporary Redirect   临时重定向, 307遵照浏览器标准,不会把POST变成GET,但是对于处理响应时的行为,每种浏览器都有可能出现不同的情况.

    4.4   4XX 客户端错误

      400 Bad Request   该状态码表示请求报文中存在语法错误

      401 Unauthorized   该状态码表示发送的请求需要有通过HTTP认证的认证信息,另外若之前进行过一次请求,则表示用户认证失败.

      403 Forbidden 该状态码表示请求资源的访问被服务器拒绝了

      404 Not Found  该状态表示服务器上无法找到请求的资源,也可以用在服务端拒绝请求且不想说明理由时使用.

    4.5  5XX 服务器错误

      500 Internal Server Error     该状态码表示服务器在执行请求时发生了错误,也可能是Web应用存在的BUG或某些临时的故障.

      503 Service Unavailable   该状态码表明服务器处于超负载或正在进行停机维护,无法处理请求.

    图解HTTP阅后笔记目录
    图解HTTP(1-4章节)---阅后笔记

    图解HTTP(5-6章节---阅后笔记)

  • 相关阅读:
    死信队列消息原因排查
    MQ中间件死信队列深度不断增加问题解决案例
    DB2 57016报错的解决办法(表状态不正常,导致表无法操作)
    万门大学--童哲
    eclipse jvm配置
    weblogic threadpool has stuck threads
    8-10 ObserveableCommand演示
    8-9 四种执行方式区别讲解
    8-8 toObserve两种形态演示
    8-7 Observe两种形态演示
  • 原文地址:https://www.cnblogs.com/Tester_Dolores/p/11905082.html
Copyright © 2011-2022 走看看