Http請求原理與相關知識


1、在瀏覽器地址欄輸入URL,按回車后經過了哪些步驟

 1-1. 瀏覽器向DNS服務器請求解析該URL中的域名及所對應的IP地址;

 1-2. 解析出IP地址后,根據該IP地址和默認端口80與服務器建立TCP連接;

 1-3. 服務器對瀏覽器請求作出響應,並把對應的html文本發送給瀏覽器並關閉TCP連接;

 1-4. 瀏覽器得到html文件后進行顯示內容;

 

2、請求

  請求是由客戶端向服務器發送請求,分為四個部分內容:請求方法(Request Method)、請求地址(Request URL)、請求頭(Request Headers)、請求體(Request Body)。

  2-1.  請求方法: 常見的請求方法有兩種:GET和POST。其他請求方法

      

方法

描述

GET

請求頁面,並返回頁面內容

HEAD

類似於GET請求,只不過返回的響應中沒有具體的內容,用於獲取報頭

POST

大多用於提交表單或上傳文件,數據包含在請求體中

PUT

從客戶端向服務器傳送的數據取代指定文檔中的內容

DELETE

請求服務器刪除指定的頁面

CONNECT

把服務器當作跳板,讓服務器代替客戶端訪問其他網頁

OPTIONS

允許客戶端查看服務器的性能

TRACE

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

     

      GET和POST請求方法有如下區別。

        • GET請求中的參數包含在URL里面,數據可以在URL中看到,而POST請求的URL不會包含這些數據,數據都是通過表單形式傳輸的,會包含在請求體中。
        • GET請求提交的數據最多只有1024字節,而POST方式沒有限制。

     一般來說,登錄時需要提交用戶名和密碼,其中包含了敏感信息,使用GET方式請求的話,密碼就會暴露在URL里面,造成密碼泄露,所以這里最好以POST方式發送。上傳文件和FORM表單提交時,由於文件內容比較大,也會選用POST方式。

 

  2-2.  請求URL: 請求的網址,即統一資源定位符URL,它可以唯一確定我們想請求的資源。  

  2-3.  請求頭: 用來說明服務器要使用的附加信息,比較重要的信息有Cookie,Referer,User-Agent等。下面簡要說明一些常用的頭信息。

        Accept:請求報頭域,用於指定客戶端可接受哪些類型的信息。

        Accept-Language:指定客戶端可接受的語言類型。

        Accept-Encoding:指定客戶端可接受的內容編碼。

        Host:指定請求資源的主機ip和端口號,其內容為請求URL的原始服務器或網關的位置。

        Cookie:也常用復數形式 Cookies,這是網站為了辨別用戶進行會話跟蹤而存儲在用戶本地的數據,它的主要功能是維持當前訪問會話。

        Referer: 用來標識這個請求是從哪個頁面發過來的,服務器可以拿到這一信息並做相應的處理,如作來源統計,防盜鏈處理等。

        User-Agent:簡稱UA,它是一個特殊的字符串頭,可以使服務器識別客戶使用的操作系統及版本、瀏覽器及版本等信息。

        Content-Type:也叫互聯網媒體類型(Internet Media Type)或者MIME類型,在HTTP協議消息頭中,它用來表示具體請求中的媒體類型信息,例如,text/html代表HTML格式,image/gif代表GIF圖片,application/json代表JSON類型,更多對應關系可以查看對照表:http://tool.oschina.net/commons

  2-4.  請求體:請求體一般承載的內容是POST請求中的表單數據,而對於GET請求,請求體則為空。 下面列出了Content-Type和POST提交數據方式的關系。

Content-Type

提交數據的方式

application/x-www-form-urlencoded

表單數據

multipart/form-data

表單文件上傳

application/json

序列化JSON數據

text/xml

XML數據

 

 

3、響應

  響應是由服務端返回給客戶端,可以分為三個部分:響應狀態碼:(Response Status Code)、響應頭(Response Headers)和響應體(Response Body)。

  3-1.  響應狀態碼: 響應狀態碼表示服務器的響應狀態,如200代表服務器正常響應,404代表頁面未找到,500代表服務器內部發生錯誤。更多狀態碼請參考:http://www.runoob.com/http/http-status-codes.html。

  3-2.  響應頭:  響應頭包含了服務器對請求的應答信息,如Content-Type、Server、Set-Cookie等,下面簡要說明下常用的頭信息。

        Data: 標識響應產生的時間。

        Last-Modified:指定資源的最后修改時間。

        Content-Encoding: 指定響應內容的編碼。

        Server: 包含服務器的信息,比如名稱,版本號等。

        Content-Type: 文檔類型,指定返回的數據類型是什么,如text-html代表返回HTML文檔,application/x-javascript則代表返回Javascript文件,image/jpeg則代表返回圖片。

        Set-Cookie: 設置Cookies。響應頭中的Set-Cookie告訴瀏覽器需要將此內容放在Cookies中,下次請求攜帶Cookies請求。

        Expires:指定響應的過期時間,可以使代理服務器或瀏覽器將加載的內容更新到緩存中,下次訪問時就可以直接從緩存中加載,從而降低服務器負載,縮短加載時間。

  3-3.  響應體: 響應體就是響應的消息體,如果是純數據就是返回純數據,如果請求的是HTML頁面,那么返回的就是HTML代碼,如果是JS就是JS代碼,如此之類。

 


免責聲明!

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



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