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的,那也沒有影響,但這個細節體現出鵝廠的細致和潮流呀

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM