国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Http協議學習小結

2019-11-14 16:14:48
字體:
來源:轉載
供稿:網友

 本文是對這幾天學習Http協議的基礎知識的小結。內容包括了Http協議的原理,Http請求信息和Http響應信息以及Http協議狀態碼等內容。

1、Http協議的基本原理:有客戶端向服務器發送請求,服務端對請求處理,對客戶端進行相應。如下圖所示。

圖1 Http協議原理圖

 

下面給出一個簡單的請求和響應的示例代碼:

 

客戶端請求:

GET / HTTP/1.1 Host: localhostAccept: text/htmlAccept-Language: en-usAccept-Encoding: gzip,deflateConnection: keep-alive空行(CR+LF) 

 

服務端響應:

HTTP/1.1 200  OK Date: Fri, 13 Jul 2012 02:45:30 GMTServer: ApacheLast-Modified: Fri ,31 Agu 2007 02:02:20 GMTETag: "45bae1-16a-46d776ac"Connection: closeContent-Type: text/htmlContent-Length:362空行(CR+LF)<html>          <head></head><body>....                   --Content  362Bytes....                       </body></html>

 


2、Http請求

a.請求報文格式:

----------------------------------------------------------

請求行             ↔           GET / HTTP/1.1

請求頭信息       ↔    Host: localhost

...

...

...

空行(CR+LF)

[請求主體信息](可以沒有)   

 -----------------------------------------------------------

b.說明:

→請求行:請求方法+請求路徑+Http協議版本

請求方法:GET,POST,HEAD,OPTION,DELETE,PUT等

請求路徑:   /  

Http協議版本:HTTP/0.9     HTTP/1.0     HTTP/1.1

 

→請求頭信息

Host:              請求的主機名稱   (localhost)  

                       注意:Host字段信息必須被包含在請求頭信息中,因為同一個IP地址下可能會有多個虛擬主機,

                  需要Host來指定請求的是該IP下的哪一個主機。

Accept:       客戶端可以處理的文件類型。           (text/html,text/plain,image/jpeg)

Accept-Encoding:  用戶代理支持的內容編碼及優先級順序   (gzip,deflate,comPRess)

Accept-Charset:    用戶代理支持的字符集及優先級順序       (iso-8859-5)

Referer:            告知服務器請求的原始資源的URI  (用此字段可以進行反防盜鏈

                        例如:Referer:http://www.baidu.com

User-Agent:      傳達創建請求的瀏覽器和用戶代理名稱等信息

 


3、Http響應

a.響應報文格式

-------------------------------------------------

響應行          ↔    HTTP/1.1 200 OK

響應頭信息    ↔    Server:Apache

...

...

...

空行(CR+LF)

[響應主體信息](可以沒有)

--------------------------------------------------

b.說明:

→響應行:Http協議版本+狀態碼+狀態字

Http協議:HTTP/0.9,HTTP/1.0,HTTP/1.1

狀態碼:

    狀態碼                說明

     1XX                  信息性狀態碼。接收的請求正在處理

     2XX       成功狀態碼。請求正常處理完畢

     3XX       重定向狀態碼。需要進行附加操作以完成請求

     4XX       客戶端錯誤狀態碼。服務器無法處理請求

     5XX       服務器錯誤狀態碼。服務器處理請求出錯

一些重要的狀態碼:

2XX:200  204  206

200(OK)                  → 客戶端的請求在服務端被正常處理

204(No Content)      → 服務器接收請求成功處理,但在返回響應報文中不含實體的主體部分

206(Partial Content) → 客戶端執行了范圍請求,而服務器成功執行了這部分的GET請求

 

3XX:301  302  303  304  307

301(Moved Permanently) → 永久重定向。表示請求的資源已被分配了新的URI,以后應使用資源現在所指的URI

302( Found)            → 臨時重定向。表示請求的資源已被分配了新的URI,希望用戶(本次)能使用新的 URI訪問

303(See Other)               → 表示由于請求對應的資源存在著另一個URI,應使用 GET方法定向獲取請求的資源

304(Not Modified)           → 表示客戶端發送附帶條件的請求時,服務器端允許請求訪問資源,但未滿足條件的情況。

                   304狀態碼返回時,不包含任何響應的主體部分

307(Temporary Redirect) → 臨時重定向。與302有著相同的含義,但是302會將POST變換成GET,而307不會將POST變換成GET

 

4XX:400  401  403  404

400(Bad Request)   → 表示請求的報文中存在語法錯誤

401(Unauthorized)  → 表示發送的請求需要通HTTP認證的認證信息,若之前已經進行過一次請求,這表示用戶認證失敗

403(Forbidden)       → 表明對請求資源的訪問被服務器拒絕

404(Not Found)       → 表名在服務器上無法找到請求的資源

 

5XX:500  503 

500(Internal Server Error)  → 表明服務器端執行請求時發生了錯誤。也有可能是Web應用存在bug或某些臨時的故障

503(Service Unavailable)    → 表明服務器暫時處于超負載或正在進行停機維護,現在無法執行請求

 

→響應頭信息

Age:      告知客戶端源服務端在多久前創建了響應(字段單位為:秒)

              若創建該響應的服務器是緩存服務器,Age值是指緩存后的響應再次發起認證到認證完成的時間值。

              代理創建響應時必須加上首部字段Age

ETag:      告知客戶端響應實體信息的標記,將資源唯一標識,

               ETag由服務器分配,沒有統一的算法規則

Location:將接收方引導至另一個資源所在處

Server:   告知客戶端當前服務器上安裝的HTTP服務器應用程序的信息。不單單會標出服務器上的軟件應用名稱,

               還有可能包括版本號和安裝時啟用的可選項

 


 4、實體首部字段(請求頭信息或者響應頭信息的字段)

Content-Encoding:   對實體的主體部分選用的內容編碼方式

Content-Language:告知客戶端主體信息使用的語言

Content-Length:    說明主體信息的大?。ㄗ止潱?/p>

Content-Type:        說明主體信息的文件(媒體)類型

Set-Cookie:            服務端向客戶端寫Cookie內容信息

Cookie:                  客戶端向服務器發送Cookie內容信息

 

另:更加深入的了解cookie與session等有關內容的講解請參考:

http://blog.csdn.net/cendy_69576750/article/details/8000091

 

 

附:以上內容參考自《圖解HTTP》一書。 

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲沃县| 长兴县| 无极县| 怀来县| 象山县| 通河县| 沧源| 平江县| 汾西县| 凤山市| 康保县| 海兴县| 迁西县| 融水| 城市| 台中县| 佛坪县| 安塞县| 金塔县| 沙洋县| 衡南县| 锦屏县| 武汉市| 手游| 宁武县| 盐源县| 丽水市| 新田县| 中卫市| 涞源县| 曲阜市| 凌海市| 大悟县| 兴城市| 云林县| 鹿邑县| 大足县| 隆尧县| 铜山县| 固始县| 四川省|