HTTP協議基本原理


HTTP協議基本原理

學號:201631062509

姓名:楊菓

HTTP:超文本傳輸協議(HyperText Transfer Protocol,HTTP)是一種用於分布式、協作式和超媒體信息系統的應用層協議。HTTP是萬維網的數據通信的基礎WWW是以Internet作為傳輸媒介的一個應用系統,WWW網上最基本的傳輸單位是Web網頁。WWW的工作基於客戶機/服務器計算模型,由Web 瀏覽器(客戶機)和Web服務器(服務器)構成,兩者之間采用超文本傳送協議(HTTP)進行通信。HTTP協議是基於TCP/IP協議之上的協議,是Web瀏覽器和Web服務器之間的應用層協議,是通用的、無狀態的、面向對象的協議

HTTP協議的作用原理包括四個步驟:  

(1) 連接:Web瀏覽器與Web服務器建立連接,打開一個稱為socket(套接字)的虛擬文件,此文件的建立標志着連接建立成功。  
 
(2) 請求:Web瀏覽器通過socket向Web服務器提交請求。HTTP的請求一般是GET或POST命令(POST用於FORM參數的傳遞)。GET命令的格式為:  GET 路徑/文件名 HTTP/1.0  文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。  
 
(3) 應答:Web瀏覽器提交請求后,通過HTTP協議傳送給Web服務器。Web服務器接到后,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面。

(4) 關閉連接:當應答結束后,Web瀏覽器與Web服務器必須斷開,以保證其它Web瀏覽器能夠與Web服務器建立連接。

 

HTTP協議簡述:HTTP是一個客戶端和服務器端請求和應答的標准(TCP)。客戶端是終端用戶,服務器端是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口為80)的HTTP請求。(我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲着(一些)資源,比如HTML文件和圖像。(我們稱)這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個中間層,比如代理,網關,或者隧道(tunnels)。盡管TCP/IP協議是互聯網上最流行的應用,HTTP協議並沒有規定必須使用它和(基於)它支持的層。 事實上,HTTP可以在任何其他互聯網協議上,或者在其他網絡上實現。HTTP只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
HTTP協議通信過程
        當我們在瀏覽器的地址欄輸入“www.baidu.com”然后按回車,這之后發生了什么事,我們直接看到的是打開了對應的網頁,那么內部客戶端和服務端是如何通信的呢?
1、URL自動解析
        HTTP URL包含了用於查找某個資源的足夠信息,基本格式如下: HTTP://host[“:”port][abs_path],其中HTTP表示桶蓋HTTP協議來定位網絡資源;host表示合法的主機域名或IP地址,port指定一個端口號,缺省80;abs_path指定請求資源的URI;如果URL中沒有給出abs_path,那么當它作為請求URI時,必須以“/”的形式給出,通常這個工作瀏覽器自動幫我們完成。
2、獲取IP,建立TCP連接
      瀏覽器地址欄中輸入" HTTP://www.xxx.com/"並提交之后,首先它會在DNS本地緩存表中查找,如果有則直接告訴IP地址。如果沒有則要求網關DNS進行查找,如此下去,找到對應的IP后,則返回會給瀏覽器。
當獲取IP之后,就開始與所請求的Tcp建立三次握手連接,連接建立后,就向服務器發出HTTP請求。
3、客戶端瀏覽器向服務器發出HTTP請求
      一旦建立了TCP連接,Web瀏覽器就會向Web服務器發送請求命令,接着以頭信息的形式向Web服務器發送一些別的信息,之后瀏覽器發送了一空白行來通知服務器,它已經結束了該頭信息的發送。
4、Web服務器應答,並向瀏覽器發送數據
       客戶機向服務器發出請求后,服務器會客戶機回送應答, HTTP/1.1 200 OK,應答的第一部分是協議的版本號和應答狀態碼,正如客戶端會隨同請求發送關於自身的信息一樣,服務器也會隨同應答向用戶發送關於它自己的數據及被請求的文檔。Web服務器向瀏覽器發送頭信息后,它會發送一個空白行來表示頭信息的發送到此為結束,接着,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據
5、Web服務器關閉TCP連接
      一般情況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然后如果瀏覽器或者服務器在其頭信息加入了這行代碼, Connection:keep-alive&nbsp,TCP連接在發送后將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網絡帶寬。

 

HTTP/1.1協議中共八種請求方法:

  • GET

    向指定的資源發出“顯示”請求。使用GET方法應該只用在讀取數據,而不應當被用於產生“副作用”的操作中,
    例如在WebApplication中。其中一個原因是GET可能會被網絡蜘蛛等隨意訪問。

  • 與GET方法一樣,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的本文部分。它
    的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中“關於該資源的信息”。

  • POST

    向指定資源提交數據,請求服務器進行處理(例如提交表單或者上傳文件)。數據被包含在請求本文中。
    這個請求可能會創建新的資源或修改現有資源,或二者皆有。

  • PUT

    向指定資源位置上傳其最新內容。

  • DELETE

    請求服務器刪除Request-URI所標識的資源。

  • TRACE

    回顯服務器收到的請求,主要用於測試或診斷。

  • OPTIONS

    這個方法可使服務器傳回該資源所支持的所有HTTP請求方法。用'*'來代替資源名稱,向Web服務器發
    送OPTIONS請求,可以測試服務器功能是否正常運作。

  • CONNECT

    HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。通常用於SSL加密服務器的鏈接
    (經由非加密的HTTP代理服務器)。

 

 


免責聲明!

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



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