http協議總結

2022-07-05 16:18:14 字數 3640 閱讀 4650

有沒有想過,為什麼你在瀏覽器中填入一串位址,然後enter就能開啟乙個網頁,為什麼不是別的網頁。伺服器怎麼知道使用者請求的是哪個網頁。答案就是http協議。

http協議是一種基於tcp/ip的應用層協議,掌握http協議對於web開發是非常重要的,筆者最近總結了一下與大家分享也為自己以後方便複習。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與web伺服器通迅的格式。

有:1.0,1.1兩個版本。在http1.0協議中,客戶端與web伺服器建立連線後,只能獲得乙個web資源,之後就會斷開鏈結。http1.1協議,允許客戶端與web伺服器建立連線後,在乙個連線上獲取多個web資源。請看下圖:

圖1

客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求。乙個完整的http請求包括如下內容:乙個請求行、若干訊息頭、以及實體內容,其中的一些訊息頭和實體內容都是可選的,訊息頭和實體內容之間要用空行隔開。如下圖所示:

圖2請求行用於描述客戶端的請求方式、請求的資源名稱,以及使用的http協議版本號;

訊息頭用於描述客戶端請求哪台主機,以及客戶端的一些環境資訊等。如上圖所示,我們是通過post方式,使用的http版本號是http1.1,主機是:localhost,即本地主機。實體資訊:test。

常用請求訊息頭

accept: text/html,image/*     說明瀏覽器接受的資料型別

accept-charset: iso-8859-1 說明瀏覽器使用的字元編碼

accept-encoding: gzip,compress    說明瀏覽器支援的壓縮格式

accept-language: en-us,zh-cn       說明瀏覽器的語言環境

host: www.it315.org:80              說明瀏覽器要訪問的主機名

if-modified-since: tue, 11 jul 2000 18:23:51 gmt 檔案的修改事件,用於做快取

referer:     說明請求來自**,防盜煉 (做實驗)

user-agent: mozilla/4.0 (compatible; msie 5.5; windows nt 5.0) 說明瀏覽器核心

cookie 向伺服器傳送cookie

connection: close/keep-alive    說明連線狀態

date: tue, 11 jul 2000 18:23:51 gmt    客戶端計算機時間

實體內容

(訊息體

)瀏覽器向伺服器傳送的資料,例如上傳的檔案、提交的表單等

1)http請求方式

post、get、head、options、delete、trace、put。但常用的只有post,get。其它幾種方式基本都用不到,這兩種方式也有很大的區別以及不同的適用場景。

a)get方式

通過get方式提交的資料會在瀏覽器位址列裡有顯示,會在請求的url位址後以?的形式帶上交給伺服器的這些資料,多個資料之間以&進行分隔。在url位址後附帶的引數是有限制的,其資料容量不能超過1k。預設情況下瀏覽器向伺服器提交的資料都是此種方式。正因為這樣get方式只適合提交一些資料量小的對安全性要求不高的資料。例如上傳檔案,使用者登入等都不能通過此種方式。

b)post方式

與get方式相比post方式沒有對提交資料的大小限制,而且所提交的資料也不會在瀏覽器位址列中顯示。這些資料會放在http請求中的實體資訊中,如:圖2中的user=test。

為了比較這兩種方式,我寫了乙個web測試專案,在此工程中有乙個1.html。關鍵**如下:

<

body

>

<

form

method

="post"

action

="/1.html"

>

<

input

type

="text"

name

="user"

/>

<

input

type

="submit"

value

="submit"

/>

form

>

body

>

body中有乙個表單,通過form的method指定表單的提交方式分別為post,get。運**況如下:

get方式:

post方式:

http響應訊息的內容包括

:  乙個狀態行(模擬 

請求資訊的」請求行」)、若干訊息頭、以及實體內容 ,其中的一些訊息頭和實體內容都是可選的,訊息頭和實體內容之間要用空行隔開。 

狀態行用於描述伺服器對請求的處理結果。

訊息頭用於描述伺服器的基本資訊,以及資料的描述,伺服器通過這些資料的描述資訊,可以通知客戶端如何處理等一會兒它回送的資料

實體內容代表伺服器向客戶端回送的資料

location:     通知瀏覽器去訪問另乙個資源

server:apache tomcat 說明伺服器

content-encoding: gzip  通知瀏覽器資料的壓縮格式

content-length: 80  通知瀏覽器傳送資料的長度

content-language: zh-cn  通知瀏覽器語言環境

content-type: text/html; charset=gb2312  通知瀏覽器檔案的格式和編碼

last-modified: tue, 11 jul 2000 18:23:51 gmt 告訴瀏覽器檔案的修改時間

refresh: 1;url= 通知瀏覽器自動重新整理

set-cookie:ss=q0=5lb_nq; path=/search 發cookie

expires: -1//3種禁止快取的頭字段

cache-control: no-cache  

pragma: no-cache   

connection: close/keep-alive    連線狀態

date: tue, 11 jul 2000 18:23:51 gmt   系統時間

就寫到這吧,以前都是看別人寫部落格,自己寫了才發現寫部落格也挺考驗人的毅力的。堅持。。。

HTTP協議總結

http協議是一種物件導向的協議,其簡單,快捷,方便,實用與分布式資訊網路管理系統 http協議的特點有 1.支援 c s和b s 支援客戶 伺服器模式 2.簡單快捷 向服務端請求時只需傳遞請求的方式 post,get,head,delete等 3.靈活 在傳遞時只需要在content type中定...

HTTP協議總結

http是應用層協議,由http客戶端發起乙個請求,建立乙個到伺服器指定埠的tcp連線。http 伺服器則在埠監聽客戶端的請求,一旦受到請求就會向客戶端返回乙個狀態 200,500等 以及返回內容。注 http是乙個無狀態的協議,通過伺服器認證後成功請求了乙個資源後再次請求這一資源時,伺服器仍舊會要...

http協議總結

http 全稱 超文字傳輸協議 它是乙個應用層的協議,使用埠號80,關鍵要知道它是乙個無狀態的協議。無狀態就是後續處理訊息,沒有前面的訊息。1 cookie 2 session cookie 由伺服器產生,瀏覽器收到請求後,儲存在本地 瀏覽器下次請求伺服器時,就是帶上cookie,這樣伺服器就知道是...