国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

理解HTTP協議

2019-11-08 19:51:19
字體:
來源:轉載
供稿:網友

標簽: http協議

在互聯網時代HTTP協議的重要性無需多言,對于技術崗位的同學們來說理解掌握HTTP協議是必須的。本篇博客就從HTTP協議的演進、特性、重要知識點和工作中常見問題的總結等方面進行簡單的介紹。理解掌握了這些點工作中就OK了,當然在面試中也是少不了的,如果能結合實踐掌握這篇博客的80%應對一般的面試應該是夠了。如果要深入學習HTTP協議的細節請看那本經典的《HTTP權威指南》。

一、HTTP協議的演進

  HTTP(HyperText Transfer PRotocol)協議是基于TCP的應用層協議,它不關心數據傳輸的細節,主要是用來規定客戶端和服務端的數據傳輸格式,最初是用來向客戶端傳輸HTML頁面的內容。默認端口是80。

  1.HTTP 0.9版本  1991年

  這個版本就是最初用來向客戶端傳輸HTML頁面的,所以只有一個GET命令,然后服務器返回客戶端一個HTML頁面,不能是其他格式。利用這個版本完全可以構建一個簡單的靜態網站了。

  2.HTTP 1.0版本  1996年

  1.0版本是改變比較大的,奠定了現在HTTP協議的基礎。這個版本的協議不僅可以傳輸HTML的文本頁面,還可以傳輸其他二進制文件,例如圖片、視頻。而且還增加了現在常用的POST和HEAD命令。請求消息和響應消息也不是單一的了,規定了一些元數據字段。例如字符集、編碼、狀態響應碼等。

  3.HTTP 1.1版本  1997年

  實際上是在1.0版本之后半年時間又發布了一個版本,這個版本在1.0版本的基礎上更加完善了。這個版本增加了持久連接,就是說之前版本的協議一次請求就是一次TCP連接,請求完成后這個連接就關閉掉了。眾所周知TCP協議是可靠的,建立連接需要3次握手,斷開連接需要4次揮手,并且TCP有流量控制和擁塞控制,有慢開始機制,剛建立連接時傳輸比較慢,這是比較耗費資源的。一個豐富的頁面會有許多圖片、表單和超鏈接。這樣的話就會有多次的HTTP請求,所以在這個版本上默認不關閉TCP連接也不用聲明Connection: keep-alive字段。如果確實要關閉可以指定Connection: close字段。還引入了管道機制,就是說在一個TCP連接里可以同時發送多個HTTP請求,而不必等待上一個請求響應成功再發送。還增加了PUT、PATCH、HEAD、 OPTIONS、DELETE等命令,豐富了客戶端和服務端交互動作。還增加了Host字段。

  4.HTTP 2版本  2015年

  這個版本也是隨著互聯網的發展,有了新的需求制定了新的功能還有對上一個版本的完善。1.1版本有了管道機制,但是正在服務端還是要對請求進行排隊處理。這個版本可以多工的處理。還有了頭信息壓縮和服務器的主動推送。

  5.HTTPS

  HTTPS是HTTP協議的安全版本,HTTP協議的數據傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協議進行了加密處理。

  關于HTTP協議歷史演進的詳細介紹請參考:http://www.ruanyifeng.com/blog/2016/08/http.html

  下面介紹沒有特殊說明默認HTTP/1.1版本

二、HTTP協議的特點

  1.HTTP協議是無狀態的

  就是說每次HTTP請求都是獨立的,任何兩個請求之間沒有什么必然的聯系。但是在實際應用當中并不是完全這樣的,引入了Cookie和session機制來關聯請求。

  2.多次HTTP請求

  在客戶端請求網頁時多數情況下并不是一次請求就能成功的,服務端首先是響應HTML頁面,然后瀏覽器收到響應之后發現HTML頁面還引用了其他的資源,例如,CSS,JS文件,圖片等等,還會自動發送HTTP請求這些需要的資源。現在的HTTP版本支持管道機制,可以同時請求和響應多個請求,大大提高了效率。

  3.基于TCP協議

  HTTP協議目的是規定客戶端和服務端數據傳輸的格式和數據交互行為,并不負責數據傳輸的細節。底層是基于TCP實現的。現在使用的版本當中是默認持久連接的,也就是多次HTTP請求使用一個TCP連接。

三、HTTP報文

  1.請求報文   這里寫圖片描述


上一篇:認識CArchive類

下一篇:常用AMF解析

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦东新区| 万安县| 吴堡县| 沁源县| 宝丰县| 榕江县| 平果县| 绥化市| 镇雄县| 灵石县| 洪江市| 黄石市| 濮阳市| 怀远县| 敦煌市| 侯马市| 阿图什市| 同江市| 隆昌县| 民乐县| 济阳县| 饶河县| 临澧县| 平乡县| 黄骅市| 柯坪县| 永善县| 庄浪县| 安吉县| 左云县| 汾西县| 阿拉善右旗| 凤凰县| 镇安县| 突泉县| 盈江县| 久治县| 临沭县| 罗定市| 杭锦旗| 南召县|