淺析:HTTP協(xié)議及其工作原理


易則易知,簡則易從。
易知則有親,易從則有功。
有親則可久,有功則可大。
可久則賢人之德,可大則賢人之業(yè)。
簡易,則天下之理得矣;
天下之理得,而成位乎其中矣。 --《易經(jīng)》


HTTP概述

  • 什么是HTTP協(xié)議
    • 超文本傳輸協(xié)議(HTTP)是萬維網(wǎng)(www)應(yīng)用層的協(xié)議,是通過兩個(gè)程序?qū)崿F(xiàn):一個(gè)是客戶端程序(一般稱為瀏覽器),另一個(gè)是服務(wù)器(常稱Web服務(wù)器)。這兩個(gè)通常運(yùn)行在不同的主機(jī)上通過交換HTTP報(bào)文來完成網(wǎng)頁請求和響應(yīng)。并且HTTP定義了報(bào)文的結(jié)構(gòu)和客戶/服務(wù)器之間交換報(bào)文的規(guī)則。
  • HTTP的特性
  • 支持客戶/服務(wù)器模式。
  • 簡單快速:客戶向服務(wù)器請求服務(wù)時(shí),只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。
  • 靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。
  • 無連接:無連接的含義是限制每次連接只處理一個(gè)請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。
  • 無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。

HTTP的工作流程

  • HTTP的怎樣工作的
    • 瀏覽器可以向web服務(wù)器發(fā)送請求并顯示收到的網(wǎng)頁,當(dāng)用戶在瀏覽器地址欄中輸入一個(gè)URL或點(diǎn)擊一個(gè)超連接時(shí),瀏覽器就向服務(wù)器發(fā)出了HTTP請求,該請求被送往由URL指定的WEB服務(wù)器,WEB服務(wù)器接收到請求后,進(jìn)行相關(guān)文檔的檢索并以HTTP規(guī)定的格式送回所要求的文件或其他相關(guān)信息,再由用戶計(jì)算機(jī)上的瀏覽器負(fù)責(zé)解釋和顯示。
易則知(http.png)
  • 一次請求流程
    一次HTTP操作稱為一個(gè)事務(wù),其工作過程可分為四步:

    1)首先客戶機(jī)與服務(wù)器需要建立連接。只要單擊某個(gè)超級鏈接,HTTP的工作開始。
    2)建立連接后,客戶機(jī)發(fā)送一個(gè)請求給服務(wù)器,請求方式的格式為:統(tǒng)一資源標(biāo)識符(URL)、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機(jī)信息和可能的內(nèi)容。
    3)服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容。
    4)客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接。
    如果在以上過程中的某一步出現(xiàn)錯(cuò)誤,那么產(chǎn)生錯(cuò)誤的信息將返回到客戶端,有顯示屏輸出。對于用戶來說,這些過程是由HTTP自己完成的,用戶只要用鼠標(biāo)點(diǎn)擊,等待信息顯示就可以了。


HTTP請求方式之GET與POST

  • 常用的請求方式是GET和POST.
    l GET方式:是以實(shí)體的方式得到由請求URI所指定資源的信息,如果請求URI只是一個(gè)數(shù)據(jù)產(chǎn)生過程,那么最終要在響應(yīng)實(shí)體中返回的是處理過程的結(jié)果所指向的資源,而不是處理過程的描述。
    l POST方式:用來向目的服務(wù)器發(fā)出請求,要求它接受被附在請求后的實(shí)體,并把它當(dāng)作請求隊(duì)列中請求URI所指定資源的附加新子項(xiàng),Post被設(shè)計(jì)成用統(tǒng)一的方法實(shí)現(xiàn)下列功能:
    1:對現(xiàn)有資源的解釋;
    2:向電子公告欄、新聞組、郵件列表或類似討論組發(fā)信息;
    3:提交數(shù)據(jù)塊;
    4:通過附加操作來擴(kuò)展數(shù)據(jù)庫 。

dot fish say code in self style !

本文由易則知編寫及整理,若轉(zhuǎn)載請標(biāo)明作者及出處,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,738評論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,344評論 3 82
  • HTTP概述 超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最...
    曹淵說創(chuàng)業(yè)閱讀 3,952評論 2 61
  • 前言:最近發(fā)現(xiàn)自己在網(wǎng)絡(luò)相關(guān)這一塊基礎(chǔ)很是欠缺,所以準(zhǔn)備花時(shí)間了解一下,本文主要是講http協(xié)議的一些基礎(chǔ),和一些...
    justCode_閱讀 2,148評論 0 23

友情鏈接更多精彩內(nèi)容