008 02HTTP基礎知識

2022-09-03 00:51:15 字數 3156 閱讀 6175

http:hypertext transfer protocol(超文字傳輸協議)

它是tcp/ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程及資料本身的格式。

http協議的版本:http/1.0、http/1.1

http1.0的基本執行方式:

基於http協議的客戶/伺服器模式的資訊交換過程,如圖所示,它分四個過程,建立連線、傳送請求資訊、傳送響應資訊、關閉連線。

瀏覽器與web伺服器的連線過程是短暫的,每次連線只處理乙個請求和響應。對每乙個頁面的訪問,瀏覽器與web伺服器都要建立一次單獨的連線。

瀏覽器到web伺服器之間的所有通訊都是完全獨立分開的請求和響應。

http1.1的特點:

在乙個tcp連線上可以傳送多個http請求和響應。

多個請求和響應過程可以重疊

增加了更多的請求頭和響應頭,比如host、if-unmodified-since請求頭等

http請求訊息:

客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求。

乙個完整的http請求包括如下內容:

乙個請求行、若干訊息頭、以及請求正文,其中的一些訊息頭和正文都是可選的,訊息頭和正文內容之間要用空行隔開。

http響應訊息:

乙個http響應代表伺服器向客戶端回送的資料。

乙個完整的http響應包括如下內容:

乙個狀態行、若干訊息頭、以及響應正文,其中的一些訊息頭和正文都是可選的,訊息頭和正文內容之間要用空行隔開。

get方式

如請求方式為get方式,則可以在請求的url位址後以?的形式帶上交給伺服器的資料,多個資料之間以&進行分隔,例如: get /mail/1.html?       name=abc&password=xyz http/1.1 get方式的特點:在url位址後附帶的引數是有限制的,其資料容量通常不能超過1k。

post方式

如請求方式為post方式,則可以在請求的正文內容中向伺服器傳送資料,post方式的特點:傳送的資料量無限制。

http響應的細節——狀態行

常用狀態碼:

200(正常) 表示一切正常,返回的是正常請求結果

302/307(臨時重定向) 指出被請求的文件已被臨時移動到別處,此文件的新的url在location響應頭中給出。

304(未修改) 表示客戶機快取的版本是最新的,客戶機可以繼續使用它,無需到伺服器請求。

404(找不到) 伺服器上不存在客戶機所請求的資源。

500(伺服器內部錯誤) 伺服器端的程式發生錯誤

http請求的細節——請求頭

常用請求頭:

accept:瀏覽器可接受的mime型別

accept-charset: 瀏覽器通過這個頭告訴伺服器,它支援哪種字符集

accept-encoding:瀏覽器能夠進行解碼的資料編碼方式,比如gzip

accept-language:瀏覽器所希望的語言種類,當伺服器能夠提供一種以上的語言版本時要用到。 可以在瀏覽器中進行設定。

host:初始url中的主機和埠

referer:包含乙個url,使用者從該url代表的頁面出發訪問當前請求的頁面

content-type:內容型別

if-modified-since: wed, 02 feb 2011 12:04:56 gmt利用這個頭與伺服器的檔案進行比對,如果一致,則從快取中直接讀取檔案。

user-agent:瀏覽器型別.

content-length:表示請求訊息正文的長度

connection:表示是否需要持久連線。如果伺服器看到這裡的值為「keep -alive」,或者看到請求使用的是http 1.1(http 1.1預設進行持久連線       cookie:這是最重要的請求頭資訊之一

date:date: mon, 22 aug 2011 01:55:39 gmt請求時間gmt

http響應細節——常用響應頭

響應頭欄位用於向客戶端傳遞附加資訊

常用響應頭:

location: 指示新的資源的位置

server:apache tomcat指示伺服器的型別

content-encoding: gzip伺服器傳送的資料採用的編碼型別

content-length: 80 告訴瀏覽器正文的長度

content-language: zh-cn服務傳送的文字的語言

content-type: text/html; charset=gb2312伺服器傳送的內容的mime型別

last-modified: tue, 11 jul 2000 18:23:51 gmt檔案的最後修改時間

refresh: 1;url=指示客戶端重新整理頻率。單位是秒

set-cookie:ss=q0=5lb_nq; path=/search伺服器端傳送的cookie

expires: -1 cache-control: no-cache (1.1) connection: close/keep-alive

date: tue, 11 jul 2000 18:23:51 gmt

HTTP 基礎知識

具體去看原文 你應該知道的http基礎知識 1.http請求報文格式 http的請求報文分為三個部分請求行 請求頭和請求體。1.1 請求行 請求行 request line 分為三個部分 請求方法 請求位址和協議及版本,以crlf r n 結束。http 1.1定義的請求方法有8中 get post...

HTTP 基礎知識

標籤位於文件的頭部,不包含任何內容。標籤的屬性定義了與文件相關聯的名稱 值對。標籤永遠位於 head 元素內部。http equiv 屬性為名稱 值對提供了名稱。並指示伺服器在傳送實際的文件之前先在要傳送給瀏覽器的 mime 文件頭部包含名稱 值對。當伺服器向瀏覽器傳送文件時,會先傳送許多名稱 值對...

HTTP基礎知識

get 用於請求訪問已經被uri 統一資源識別符號 識別的資源,可以通過url傳參給伺服器 post 用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。put 傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。head 獲得報文首部,與get方法類似,只是不返回報文主...