http报文示例与详解

一般来说,http头部header组成一般由:1、general header 2、request headers 3、response headers三个部分组成,什么,你说还有entity-header?这个是response-headers的一个从属啦

当然,我们知道,我们的http分为请求和响应,对吧?所以,我们的请求,即http请求,

分为1、general header 2、request headers 3、request body

所以http响应分为:1、generalheader 2、response headers 3、response body

 

这里,我们以百度为例

以下三部分组成http headers

General head,顾名思义,请求和响应报文中,用来描述报文一般信息的头部,比如说这个报文请求和响应的Request URL是“http://www.baidu.com”,这种描述给人感觉有什么特点?

可以相互匹配把?请求和响应是成对出现的,除了没有响应以外,如果双方出现,必然是有部分general header是一致的,这样才是这一般信息的意义所在嘛,

而且,发送报文和接收报文都是消息,消息包含了信息,那信息也得需要描述把?信息所包含的信息量?你怎么来描述?这个时候,我们的general header的用处,就来啦!!!!

 

 

RequestHeaders

 

ResponseHeaders

 

 

说到这里,我们还没有枚举出entity header是什么,

https://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html

这个是w3c标砖,rfc2626标准有讲到entity-header所包含的内容,如下:

               Content-Encoding         ; Section 14.11
                      | Content-Language         ; Section 14.12
                      | Content-Length           ; Section 14.13
                      | Content-Location         ; Section 14.14
                      | Content-MD5              ; Section 14.15
                      | Content-Range            ; Section 14.16
                      | Content-Type             ; Section 14.17
                      | Expires                  ; Section 14.21
                      | Last-Modified            ; Section 14.29
                      | extension-header

大家看到我们熟悉的Content-type,这个是存在response-headers里面的,所以entity-header就是response-header的一部分,

而我们的request-header里面,一般较为熟悉的有:

  Accept-Charset
  Accept-Encoding
  Accept-Language
根据语义上看,我们很容易理解,定义了接收语言和接收编码,当然还有接收字符串类型,说明请求header,是客户端告诉服务端,需要返回哪些类型的响应主体,可以理解为,给予一个返回数据,返回消息主体的说明

 

 

当然,这里的三个部分head是包含了请求和响应的所有header,至于body部分,get请求没有body,并非说不可以携带,并没有这个要求,然而绝大多数get请求基本上都没有携带body,你会发现,携带了body将显得多此一举,为何?

理由:服务段处理get请求返回响应时,返回的数据,一般应用场景,诸如浏览器,连接等场景,这种场景,直接一个请求url就可以搞定,试想?如果你在浏览网页的时候,发现有一个链接,你点击进去,而弹出网页,提示您需要添加body信息才能完整显示,难道这样的操作,或许只有专业的开发者或者程序员才能做?如果你这样开发服务端,我觉得挺6的,如果这个用户就喜欢这样的体验方式,我觉的也不是不能接受

如果不是“www.baidu.com”,其他的web操作,诸如post操作,那应该是看得到body主体的,这些东西,我将会在其他文章中作进一步的阐述,这里就不多赘述了

====================================================================================================================================================================================

 

 

所谓一流公司卖标准,这样标准的协议是怎么来的呢??

万维网WWW(world wide web)发源于欧洲日内瓦量子物理实验室CERN,正是WWW技术的出现使得因特网得以超乎想象的速度迅猛发展。这项基于TCP/IP的技术在短短的十年时间内迅速成为已经发展了几十年的Internet上的规模最大的信息系统,它的成功归结于它的简单、实用。在WWW的背后有一系列的协议和标准支持它完成如此宏大的工作,这就是Web协议族,其中就包括HTTP超文本传输协议。
[2]在1990年,HTTP就成为WWW的支撑协议。当时由其创始人WWW之父蒂姆·贝纳斯·李(TimBerners—Lee)提出,随后WWW联盟(WWW Consortium)成立,组织了IETF(Internet Engineering Task Force)小组进一步完善和发布HTTP协议。
 
这种标准的建立与提交在1990年,相关部分介绍,请允许我插一条外链:http://www.qdaily.com/articles/15812.html,我想对于W3C之父的介绍,我这么干,杜勇应该会同意的
 
回头将针对具体报文作详细解释,敬请期待
 
 
=====================================================================================================================================================
讲到header,来看看腾讯的头部
request-headers

 

 response-headers

 

general-header

 

 

这说明了什么?

 显然,关于header,鹅厂已经赶在了百度的前面了,已经聪明的认识到将请求头统统改为小写,这样无论服务端是大写还是小写,都能很好的体验,当然百度这样做,问题也不大,如果他的服务端是1.1的,那也没有影响,但这个细节体现出鹅厂的细致和潮流呀

 

posted @ 2020-04-15 10:56  菊次郎的幻想  阅读(2468)  评论(0编辑  收藏  举报

begin