談談你對http的理解


一、先看一張圖:

 

二、要client與sever能溝通

1.需要一樣的規則,遵循一定的規范-----------協議

 好比:不同國家的人,需要一門通用的語言。

2.談到協議------http-------為什么要學的是http協議,而不是其他的:因為BS架構中,它是一個標准協議。

3.http是如何通信的:(4個步驟)

 (1).瀏覽器,根據IP地址和端口號(主機域名)與服務器,建立連接。

【好比:A要給B發郵件,A需要知道了B的郵箱地址啊】

(2)向web服務器發送請求數據包

【好比:A給B發的郵件的內容】

(3).web接受請求,並發送相應的響應數據包

【好比:B收到A的郵件,B做出回應,比如給A回復郵件】

(4)瀏覽器收到響應以后,服務器關閉連接

(注意:每一次訪問都是獨立的,而且服務器不會記憶上一次是那個客戶端請求的。)

【好比:B回復以后就刪除了A發來的郵件,並關閉郵箱】

4.談到通信的步驟àURL------發請求------響應請求

(一)

(1)URL: UniformResourceLocator(統一資源定位符),網頁地址。

 URL的格式:http://host[“:”port][abs_path]   https://host[“:”port][abs_path]

(2) URI:Uniform Resource Identifier(標識、定位任何資源的字符串)

(二) 發請求

        請求數據包包括(4部分):請請求行,消息報頭,空行,請求內容。

 

請求行:

格式: Method Request-URI HTTP-Version (空格分開)

Method表示請求方法

Request-URI是一個統一資源標識符

HTTP-Version表示請求的HTTP協議版本

 

(1)   Method請求方法有多種:

GET:  常用。

在瀏覽器的地址欄中輸入網址的方式訪問網頁。

安全系數低。

POST:常用於表單的提交,用於登陸注冊界面。

該方法要求被請求服務器接受附在請求后面的數據。

比如:www.baidu.com/?name=ouyang&age=18[o1] 

相對安全。

HEAD: 與GET方法幾乎是一樣的

(HEAD請求的回應部分的HTTP頭部中包含的信息與通過GET請求所得到的信息是相同的。利用這個方法,不必傳輸整個資源內容,就可以得到Request-URI所標識的資源的信息。)

               常用於測試超鏈接的有效性,是否可以訪問,以及最近是否更新。

(三) 響應請求

1.在接收和解釋請求消息后,服務器返回一個HTTP響應消息

2.HTTP響應也是由四個部分組成,分別是:狀態行、消息報頭、空行、響應內容

狀態行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF 

例子:HTTP/1.1  200  OK (CRLF)

 

**:

1xx:指示信息--表示請求已接收,繼續處理

2xx:成功--表示請求已被成功接收、理解、接受 

  200代表 客戶端請求成功

3xx:重定向--要完成請求必須進行更進一步的操作

4xx:客戶端錯誤--請求有語法錯誤或請求無法實現

400 Bad Request  客戶端請求有語法錯誤,不能被服務器所理解

401 Unauthorized 請求未經授權

403 Forbidden  服務器收到請求,但是拒絕提供服務

404 Not Found  請求資源不存在

5xx:服務器端錯誤--服務器未能實現合法的請求

503 Server Unavailable  //服務器當前不能處理客戶端的請求,一段時間后可能恢復正常

 

 


 [o1]

第一個參數用“?”

第一個參數用“&”


免責聲明!

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



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