淺談HTTP請求與響應

 

HTTP協議用於客戶端和服務器之間的通訊,請求訪問的一段是客戶端,提供資源響應的一段是服務器端。html

HTTP通訊是採用請求應答的方式來進行的,客戶端發出請求,服務器響應。若是沒有客戶端的請求,服務器端是不進行任何響應的。HTTP通訊機制是在一次完整的HTTP通訊過程當中,Web瀏覽器與Web服務器之間將完成下列4個步驟:瀏覽器

(1)創建TCP鏈接服務器

在HTTP工做開始以前,Web瀏覽器首先要經過網絡與Web服務器創建鏈接,該鏈接是經過TCP /IP完成,這是在網絡層進行的。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議創建以後才能,才能進行更層協議的鏈接,所以,首先要創建TCP鏈接,通常TCP鏈接的端口號是80。網絡

(2)Web瀏覽器向Web服務器發送請求命令spa

一旦創建了TCP鏈接,Web瀏覽器就會向Web服務器發送請求命令,以下所示,其中GET表示請求服務的類型,隨後的字符串/index.html指明瞭請求訪問的資源對象,也叫作請求URI。最後的HTTP/1.1表示HTTP的版本號。綜合來看,請求報文包括請求方法、請求URI、協議版本、可選的請求首部字段和內容實體。代理

GET /index.htm HTTP/1.1htm

Host:hackr.jp對象

(3)Web服務器應答ci

客戶機向服務器發出請求後,服務器會客戶機回送應答,以下所示。開頭的HTTP/1.1表示服務器對應的版本號,接下來的200 OK表示請求處理的處理結果的狀態碼和緣由短語。接下來是響應首部字段。資源

HTTP/1.1 200 OK

Date:Tue ,10 July 2016 08:33:16 GMT

Content-Length:362

Conten-Type:text/html

<html>

……

(4)Web服務器關閉TCP鏈接

通常狀況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP鏈接,而後若是瀏覽器或者服務器在其頭信息加入了這行代碼

Connection:keep-alive

TCP鏈接在發送後將仍然保持打開狀態,因而,瀏覽器能夠繼續經過相同的鏈接發送請求。保持鏈接節省了爲每一個請求創建新鏈接所需的時間,還節約了網絡帶寬。

在HTTP的請求服務類型主要有如下八種:

GET:獲取資源

GET方法用來請求訪問已經被URI識別的資源,具體的請求與響應的例子以下:

請求

GET /indexhtml HTTP/1.1

Host:www.hackr.jp

響應

返回index.html的頁面資源

POST:傳輸實體主體,具體的請求響應例子以下:

請求

POST /submit.cgi HTTP/1.1

Host:www.hackr.jp

Content-Length:1560(1560字節的數據)

響應

返回submit.cgi接收數據的處理結果

PUT:傳輸文件,具體的請求響應例子以下:

請求

PUT /example.html HTTP/1.1

Host:www.hackr.jp

Content-type:text/html

Content-Length:1560(1560字節的數據)

響應

返回狀態碼

HEAD:得到保溫首部

請求

HEAD /indexhtml HTTP/1.1

Host:www.hackr.jp

響應

返回index.html有關的響應首部

DELETE:刪除文件

請求

DELETE /example.html HTTP/1.1

Host:www.hackr.jp

響應

返回狀態碼

OPTIONS:詢問支持的方法

請求

OPTIONS* HTTP/1.1

Host:www.hackr.jp

響應

HTTP/1.1 200 OK

Allow:GET,POST,HEAD,OPTIONS

(返回服務器支持的方法)

TRACE:追蹤路徑

請求

TRACE HTTP/1.1

Host:www.hackr.jp

Max-Forwards:2

響應

HTTP/1.1 200 OK

Content-type:message/http

Content-Length:1024

 

TRACE HTTP/1.1

Host:www.hackr.jp

Max-Forwards:2

CONNECT:要求用隧道協議連接代理

請求

CONNECT proxy.hackr.jp:8080 HTTP/1.1

Host:proxy.hackr.jp

響應

HTTP/1.1 200 OK(以後進入網絡隧道)

相關文章
相關標籤/搜索