美文网首页金石路545号水吧
你应该了解的http协议

你应该了解的http协议

作者: 农林卧夫 | 来源:发表于2017-12-02 08:53 被阅读2次

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。 http是web应用程序数据通信的一种工具,是因特网中使用的公共语言,HTTP 客户端发出请求会提供数据,客户端向服务器发送 HTTP 请求,服务器会在 HTTP 响应中返回请求的数据

    HTTP允许传输任意类型的数据对象,传输的类型由Content-Type标记,http连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

    我们先来看下数据交互时浏览器headers部分显示的文本:下面报文的字段涵盖的并不全面,所以作为参考。

    下面我们详细来看下报文字段

    1)Request URL:因特网上请求资源的具体位置。

    2)200:状态码告诉客户端,请求发生的了什么,状态码位于响应的起始行中,常见的额状态码有200,404,401,500,503等等。200表示请求成功,请求返回的数据在主体中,404表示资源不存在,401表示没有授权需要用户名和密码,下面是状态码分类。

    状态码分类

    整体范围      已定义范围     分  类

    100 ~ 199   100 ~ 101     信息提示

    200 ~ 299   200 ~ 206     成功

    300 ~ 399   300 ~ 305     重定向

    400 ~ 499   400 ~ 415     客户端错误

    500 ~ 599   500 ~ 505     服务器错误

    3)  Request Method:请求的方式,请求方式有很多种,常用的是get和post方法,GET 方法负责从服务器获取一个文档,POST 方法会向服务器发送需要处理的数据,常用的HTTP方法如下:

    GET 从服务器获取一份文档 不包含主体

    HEAD 只从服务器获取文档的首部 不包含主体

    POST 向服务器发送需要处理的数据 包含主体

    PUT 将请求的主体部分存储在服务器上 包含主体

    TRACE 对可能经过代理服务器传送到服务器上去的报文进行追踪 不包含主体

    OPTIONS 决定可以在服务器上执行哪些方法 不包含主体

    DELETE 从服务器上删除一份文档 不包含主体

    4) Content-Type:MIME 类型,表示这个主体的对象类型,大多数浏览器都可以处理数百种常见的对象类型,MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。                                                                 text/html:HTML 格式的文本文档 ,                                                                    text/plain:普通的 ASCII 文本文档                                                                      image/jpeg:JPEG 格式的图片                                                                            image/gif:GIF 格式的图片

    5)Date:Thu, 15 Jun 2017 08:28:26 GMT   服务器产生响应的日期

    6)Content-length:1024 实体的主体部分,说明包含了1024 字节的数据

    7)  Location:http://www.1234.com:服务器可以通过 Location 首部设置将客户端指向某个资源的地址,这个资源可能在客户端最后一次请求之后被移动过,也可能是在对请求的响应中创建的。

    8)Pragma:no-cache  通过它可以迫使缓存在有新副本可用的情况下,向原始服务器请求文档或对其进行再验证。用户点击重新加载 或者刷新按钮时,浏览器就会发出这个首部。很多服务器会将 Pragma:no-cache 作为响应首部发送和 Cache-Control:no-cache 等价

    9)Public:OPTIONS, GET, HEAD, TRACE, POST 。服务器可以用 Public 首部告知客户端它支持哪些方法。

    10)Range:bytes=500-1500。它的值说明了报文所包含实体的范围,在请求某实体的部分内容中会用到 Range 首部。

    11)Referer:告知服务器从哪离发起的URL请求

    例如:

    Referer:http://admin.me.dingdon/index

    12)Server:和User-Agent 首部类似。它的值就是服务器名字和一个可选的服务器注释。

    13)Transfer-Encoding:chunked。如果要通过某些编码来安全地传送 HTTP 报文主体,报文中就要包含 Transfer-526552 | 附录 CEncoding 首部。它的值是一个对报文主体执行过的编码的列表。如果进行了多种编码,就将其按序排列。

    14)User-Agent:列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本等等信息。

    15)Vary:Accept-Encoding服务器通过 Vary 首部来通知客户端,在服务器端的协商中会使用哪些来自客户端请求的首部 它的值是一个首部列表,服务器会去查看这些首部,以确定将什么内容作为响应发送回给客户端。

    16)Accept:告诉服务器能够发送哪些媒体类型

    例如:Accept:application/json, text/javascript, */*; q=0.01

    17)Accept-Charset:告诉服务器能够发送哪些字符集

    18)Accept-Encoding告诉服务器能够发送哪些编码方式

    例如:Accept-Encoding:gzip, deflate

    19)Accept-Language:告诉服务器能够发送哪些语言

    20)Authorization包含了客户端提供给服务器,以便对其自身进行认证的数据

    21)Cookie客户端用它向服务器传送一个令牌——它并不是真正的安全首部,但隐含了安全功能

    22)Cookie2用来说明请求端支持的 cookie 版本

    23)Expires:Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    相关文章

      网友评论

        本文标题:你应该了解的http协议

        本文链接:https://www.haomeiwen.com/subject/blogbxtx.html