HTTP協議

HTTP協議的應用非常普遍,這里做一個簡單的總結。

Web服務:web服務可以認為是大規模的基于client/server模式的分布式信息系統,其結構圖<1>所示。

圖<1>

HTTP 協議:HyperText Transfer Protocol,超文本傳輸協議。基于TCP實現的一種應用層協議。一次HTTP協議的交互過程如圖<2>所示。

圖<2>

1、URI和URL有什么區別

URI的全稱是uniform resource identity(統一資源標識符)。URL的全稱是uniform resource locate (統一資源定位符)。URN的全稱是unifrom resource name(統一資源名)。這3者的關系入下圖所示。簡而言之,URL是URI,URN也是URI。但是URI不一定是URL,也不一定是URN。所有能標志一個資源的都成為URI,其中,從尋址方式(協議)定義的標識方式稱為URL【例如ftp://example.org/resource.txt】。從命名編號方式定義的標識稱為URN【例如urn:issn:1535-3613】。

圖<3>

2、web 瀏覽器地址欄里面的地址是什么?

我覺得應該用URL更加貼切,雖然用URI也是正確的。web地址欄一般包括了資源的獲取方式,http,https,ftp等等。你說它是URI絕對沒有錯,但是說成URL會更加的貼切。記住,只有包含了或者方式的URI才能稱之為URL。web URL的組成格式可概括為:協議-域名(主機:端口)-路徑和文件名。這三部分對應HTTP包頭格式中協議字段、Host字段、URL字段(嚴格上來說這個字段不能稱之為URL)。在瀏覽器輸入URL后,瀏覽器會生成相應的HTTP請求報文,向HTTP server發起請求,并等待HTTP server 的回包。一個請求過程如圖<4>所示。特別需要注意的是圖中的URL指代 /path/file(并非真正意義上的URL)。

圖<4>

3、HTTP協議的請求格式

圖<5>

HTTP協議的包格式如圖<5>所示。第一行包含三個字段 方法、URL、版本;從第二行開始的格式為 頭部域名稱:頭部域值;每行尾部都要加上\r\n; 包頭和包體之間需要額外一個\r\n.一個實例如圖<6>。

圖<6>

引用:

http://web.jobbole.com/83452/

https://danielmiessler.com/study/url-uri/

https://www.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容