HTTP

參考:
HTTP協議詳解
HTTP協議處理流程

HTTP練習沙箱:httpbin.org

官方文檔:
IETF RFC2616 HTTP/1.1
https://www.w3.org/Protocols/
http://www.faqs.org/rfcs/

書籍參考:
《HTTP權威指南》

基本知識點

超文本輸出協議
快速,靈活
請求方法:GET、HEAD、POST、PUT、DELETE
傳輸類型以 Content-Type加以標記
無連接:請求完收到響應即斷開連接
無狀態:后續處理需要前面的信息就必須重傳

HTTP request:請求行,請求頭,請求體;
HTTP response:狀態行,響應頭,響應體;

  • http狀態碼 :
    302 是請求重定向,304未改變,用于瀏覽器緩存機制;
    500以上是服務器錯誤
    400以上是請求鏈接錯誤或者找不到服務器,401未授權,404未找到;
    200以上是正確
    100以上是請求接受成功

  • cookie RFC6265
    為了辨別用戶身份,進行session跟蹤而存儲在用戶本地終端上的數據,通常經過加密,可以叫做瀏覽器緩存;
    cookie是由web服務器創建的保存在用戶瀏覽器上的小文本文件,它包含有關用戶信息,可以加快用戶訪問速度,但是會導致安全問題;
    用戶訪問一個web服務器時,瀏覽器首先要檢查本地的cookies,并將其樣發給web服務器;
    cookies最經典的應用是判定注冊用戶是否已經登錄網站;

  • HTTP URL請求過程
    請求DNS域名解析
    TCP/IP連接
    發送請求
    接受響應
    客戶端主動關閉

  • chunked 編碼
    一般情況下HTTP的header包含content-length來指明報文體長度;
    但有時候服務生成HTTP回應是無法確定消息大小的,比如大文件的下載,或者后臺需要復雜的邏輯才能全部處理頁面的請求,這時需要實時生成消息長度,服務器一般使用 chunked 編碼;
    編碼使用若干個Chunk組成,由一個標明長度為0的chunk結束,每個Chunk有兩部分組成,第一部分是該Chunk的長度和長度單位(一般不寫),第二部分就是指定長度的內容,每個部分用CRLF隔開。在最后一個長度為0的Chunk中的內容是稱為footer的內容,是一些沒有寫的頭部內容

HTTP 原理
參數字段
  • Keep-Alive:
    Keep-Alive功能使客戶端到服務器端的連接持續有效,當出現對服務器的后繼請求時,Keep-Alive功能避免了建立或者重新建立連接,有一個設置時間
  • Range:
    設置斷點下載/續傳的位置
Socket

socket起源于Unix,而Unix/Linux的基本哲學之一就是“一切皆文件”;
scoket是一套完成TCP/UDP協議的接口,本身并不是協議,而是一個調用接口;

  • 心跳
    理論上socket的TCP鏈接是長連接,一般不會主動斷開,但是會出現異常情況導致連接斷開,所以在無數據傳輸的時候要發送心跳消息,消息內容由開發者自定義;

HTTPS

HHTPS 使用 443端口, HTTP使用80端口;
HTTP+SSL,SSL(安全套接層)是Netscape公司設計的主要用于web的安全傳輸協議,通過證書來確保客戶端跟服務端之間的通信數據是加密安全的;
加解密算法類型:

  • 對稱加密:密鑰只有一個,加密解密為同一個密碼,切加解速度快
    典型的對稱加密算法有DES、AES、RC5、3DES等;
  • 非對稱加密:使用兩個密鑰,公共密鑰和私有密鑰
    根據公鑰無法推知私鑰,根據私鑰也無法推知公鑰,相對對稱加密速度較慢,典型的非對稱加密算法有RSA、DSA等;
    私有由一方保存,另一方任何人都可以獲得公共密鑰;
    URL導圖:


    Paste_Image.png
Paste_Image.png

Multipart/form-data

https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
https://my.oschina.net/cnlw/blog/168466
http://www.faqs.org/rfcs/
http里沒有專門用于文件上傳的請求方式,文件上傳請求是在post請求基礎之上定義出來的一種方式;
multipart請求頭信息: Content-Type,其值必須規定為multipart/form-data,具體的頭信息如下:

Content-Type: multipart/form-data; boundary=${bound}

${bound}是一個占位符,代表我們規定的分隔符;
與post請求體不同的是它的構造方式,post是簡單的name=value值鏈接,而multipart/form-data則是添加了分割符等內容的構造體;
**要發送一個multipart請求,其實任何支持post請求的工具或語言都可以支持,只是自己要稍微包裝一下便可

Paste_Image.png

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容

  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,409評論 6 152
  • Http協議詳解 標簽(空格分隔): Linux 聲明:本片文章非原創,內容來源于博客園作者MIN飛翔的HTTP協...
    Sivin閱讀 5,247評論 3 82
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協議是指計算機通信網絡中兩臺計算機之間進行通信所必須共同遵守的規定或...
    HoyaWhite閱讀 2,702評論 2 20
  • /*--------------------------- 01 HTTP請求 -----------------...
    藍心兒的藍色之旅閱讀 2,173評論 0 4
  • 工作流程 一次HTTP操作稱為一個事務,其工作過程可分為四步: 1)首先客戶機與服務器需要建立連接。只要單擊某個超...
    保川閱讀 4,634評論 2 14