http協議學習筆記

2021-08-29 21:39:15 字數 4157 閱讀 6567

http協議(超文字傳輸協議)是一套計算機通過網路進行通訊的規則,使用http協議客戶機能夠從http伺服器請求資訊和服務。http協議採用請求/響應模型,在這一模型中總是客戶端向伺服器傳送請求,伺服器根據請求資訊,請求實體的許可權請求。客戶端請求的方式主要有get,post,head等。

get     請求獲取request-uri所標識的資源

post    在request-uri所標識的資源後附加新的資料

head    請求獲取由request-uri所標識的資源的響應訊息報頭

put     請求伺服器儲存乙個資源,並用request-uri作為其標識

delete  請求伺服器刪除request-uri所標識的資源

trace   請求伺服器回送收到的請求資訊,主要用於測試或診斷

connect 保留將來使用

options 請求查詢伺服器的效能,或者查詢與資源相關的選項和需求

一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成以下七個步驟:

1。 建立tcp連線。在http連線之前web瀏覽器首先要通過網路與伺服器要建立連線,該連線是通過tcp協議來完成的。http協議是比tcp更高層次的協議,根據規則只有低層次的協議建立好之後才能建立更高層次的連線,所以首先建立tcp連線。

2。一旦建立了tcp連線,web瀏覽器就可以向http伺服器傳送請求命令。

例如:get/sample/hello.jsp http/1.1

get 表示請求的方式為get,/sample/hello.jsp 表示請求的資源的uri,http/1.1表示http協議的版本。

3。web瀏覽器傳送請求命令後還要以頭資訊的形式向向web伺服器傳送一些別的資訊,之後瀏覽器傳送一空白行來通知伺服器頭資訊以傳送完畢。

頭資訊主要包括:

date頭域:date頭域表示訊息傳送的時間,時間的描述格式由rfc822定義。例如,

date:mon,31dec200104:25:57gmt。date描述的時間表示世界標準時,換算成本地時間,需要知

道使用者所在的時區。

host頭域:host頭域指定請求資源的intenet主機和埠號,必須表示請求url的原始伺服器或閘道器的位置。

http/1.1請求必須包含主機頭域,否則系統會以400狀態碼返回

優化cache等。他也允許廢除的或錯誤的連線由於維護的目的被追蹤。如果請求的uri沒有自己的uri地

址,referer不能被傳送。如果指定的是部分uri位址,則此位址應該是乙個相對位址。

pragma頭域:pragma頭域用來包含實現特定的指令,最常用的是pragma:no-cache

range頭域:range頭域可以請求實體的乙個或者多個子範圍。例如,

表示頭500個位元組:bytes=0-499

表示第二個500位元組:bytes=500-999

表示最後500個位元組:bytes=-500

表示500位元組以後的範圍:bytes=500-

第乙個和最後乙個位元組:bytes=0-0,-1

同時指定幾個範圍:bytes=500-600,601-999

但是伺服器可以忽略此請求頭,如果無條件get包含range請求頭,響應會以狀態碼206

(partialcontent)返回而不是以200 (ok)。

user-agent頭域:user-agent頭域的內容包含發出請求的使用者資訊。

cache-control頭域:cache -control指定請求和響應遵循的快取機制。在請求訊息或響應消

息中設定 cache-control並不會修改另乙個訊息處理過程中的快取處理過程。請求時的快取指令

包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,響應消

息中的指令包括public、private、no-cache、no- store、no-transform、must-

revalidate、proxy-revalidate、max-age。各個訊息中的指令含義如 下:

public指示響應可被任何快取區快取。

private指示對於單個使用者的整個或部分響應訊息,不能被共享快取處理。這允許伺服器僅僅描述當使用者的部分響應消

息,此響應訊息對於其他使用者的請求無效。

no-cache指示請求或響應訊息不能快取

no-store用於防止重要的資訊被無意的發布。在請求訊息中傳送將使得請求和響應訊息都不使用快取。

max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。

min-fresh指示客戶機可以接收響應時間小於當前時間加上指定時間的響應。

max-stale指示客戶機可以接收超出超時期間的響應訊息。如果指定max-stale訊息的值,那麼客戶機可以接收超出

超時期指定值之內的響應訊息。

…………等等。

訊息頭以空行表示結束,訊息頭後面可接訊息體(可選的)如:name=xiaoming&***=1

4。web 伺服器應答。客戶機傳送請求後,伺服器將向客戶機回送應答。

例如:http/1.1 200 ok

http/1.1 表示http協議的版本,200表示響應狀態碼,ok為響應狀態碼的文字描述資訊。

響應狀態碼的第乙個數字可 能取5個不同的值:

1xx:資訊響應類,表示接收到請求並且繼續處理

2xx:處理成功響應類,表示動作被成功接收、理解和接受

3xx:重定向響應類,為了完成指定的動作,必須接受進一步處理

4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行

5xx:服務端錯誤,伺服器不能正確執行乙個正確的請求

5。web伺服器傳送應答頭資訊。

location響應頭

location響應頭用於重定向接收者到乙個新uri位址。

server響應頭

server響應頭包含處理請求的原始伺服器的軟體資訊。此域能包含多個產品標識和注釋,產品標識一般按照重要性排

序。實體

請求訊息和響應訊息都可以包含實體資訊,實體資訊一般由實體頭域和實體組成。實體頭域包含關於實體的原資訊,實

體頭包括allow、content- base、content-encoding、content-language、 content-length、content-

location、content-md5、content-range、content-type、 etag、expires、last-modified、

extension-header。extension-header允許客戶端定義新的實體頭,但是這些域可能無法未接受方識別。實體可

以是乙個經過編碼的位元組流,它的編碼方式由content-encoding或content-type定義,它的長度由content-

length或content-range定義。

content-type實體頭

content-type實體頭用於向接收方指示實體的介質型別,指定head方法送到接收方的實體介質型別,或get方法發

送的請求介質型別 content-range實體頭

content-range實體頭用於指定整個實體中的一部分的插入位置,他也指示了整個實體的長度。在伺服器向客戶返回

乙個部分響應,它必須描述響應覆蓋的範圍和整個實體長度。一般格式:

content-range:bytes-unitspfirst-byte-pos-last-byte-pos/entity-legth

例如,傳送頭500個位元組次字段的形式:content-range:bytes0- 499/1234如果乙個http訊息包含此節(例如,

對範圍請求的響應或對一系列範圍的重疊請求),content-range表示傳送的範圍, content-length表示實際傳

送的位元組數。

6。web伺服器向客戶機傳送資料。

7。web伺服器關閉tcp連線。

HTTP學習筆記 HTTP協議

tcp ip協議按層次分為四層 應用層,傳輸層,網路層,資料鏈路層。該層決定了向使用者提 用服務時通訊的活動。如ftp和dns服務等。傳輸層有兩個性質不同的協議 tcp和udp協議。網路層的作用就是計算機之間通過網路裝置進行傳輸時,選擇一條傳輸路線。用來處理連線網路的硬體部分,硬體上的範疇均在該層的...

http協議學習筆記

http 協議是建立在 tcp ip協議基礎上 http 協議全稱 超文字傳輸協議 http 協議1.0 1.1版本 目前通用的是1.1版本 http1.0 稱為短連線 http1.1 稱為長連線.所謂長,和短指的是 持續時間的 長連線 1.1 30s 短連線是傳送完資料就斷掉 基本結構 get t...

HTTP協議學習筆記

http協議 1.面試題 聊一下http協議 協議的完整通訊過程 2.通訊過程 1 請求 2 響應 3.http請求的方法 1 get 2 post 4.ios中傳送get post請求的手段 1 nsurlconnection 傳送乙個同步請求 nsdata sendsynchronousrequ...