HTTP(超文字傳輸協議)基礎

2021-08-19 19:50:04 字數 1935 閱讀 9605

http(hypertext transfer protocol)超文字傳輸協議,是應用層最常見的協議,常用於web應用中。

預設埠號:80

可靠資料傳輸:一般採用tcp/ip協議來實現保證可靠資料傳輸

無狀態:預設為非持久連線,所以http協議也說是無狀態的協議。

報文:主要分為兩種,請求(request)報文和響應(response)報文

請求報文格式: 請求行 - 通用資訊頭 - 請求頭 - 實體頭 - 報文主體

請求行:方法字段 url欄位 http協議版本

方法字段:get,post,head,put,delete

url欄位:目標物件在伺服器的路徑

版本號:當前的http協議版本

通用資訊頭

(請求報文與響應報文都會使用的首部字段)

date:建立報文時間

connection:連線的管理(持久連線或是非持久連線)

cache-control:快取的控制

transfer-encoding:報文主體的傳輸編碼方式

請求頭:

host:伺服器主機

referer頭域:原位址url

user-agent:使用者**,也就是瀏覽器型別

cookie:傳送本地儲存的乙個sessionid到伺服器中索引session

實體頭(請求報文與響應報文的的實體部分使用的首部字段)

allow:資源可支援的http方法

content-type:實體主類的型別

content-encoding:實體主體適用的編碼方式

content-language:實體主體的自然語言

content-length:實體主體的的位元組數

content-range:實體主體的位置範圍,一般用於發出部分請求時使用

響應報文格式: 狀態行 - 通用資訊頭 - 響應頭 - 實體頭 - 報文主體

狀態行:協議版本 狀態碼 相應狀態資訊

協議版本:當前的http協議版本

狀態碼和對應的狀態資訊在後面會列舉一些常見的

通用資訊頭

(請求報文與響應報文都會使用的首部字段)

date:建立報文時間

connection:連線的管理(持久連線或是非持久連線)

cache-control:快取的控制

transfer-encoding:報文主體的傳輸編碼方式

響應頭:

location:伺服器返回的新介面的url

server:伺服器的一些資訊

實體頭(請求報文與響應報文的的實體部分使用的首部字段)

allow:資源可支援的http方法

content-type:實體主類的型別

content-encoding:實體主體適用的編碼方式

content-language:實體主體的自然語言

content-length:實體主體的的位元組數

content-range:實體主體的位置範圍,一般用於發出部分請求時使用

常見狀態碼和對應的狀態資訊:

200 ok 請求成功

301 moved permanently 請求的url被永久更改了,返回新的url在location欄位中,一般軟體會自動對該url進行訪問

400 bad request 乙個通用的差錯**,表示請求伺服器無法理解,一般是報文有錯誤

404 not found 請求的文件不在伺服器上,一般是url寫錯了

505 http version not supported 表示請求的報文和協議的版本不對應

http的缺點與https

通訊使用明文不加密,內容可能被竊聽

不驗證通訊方身份,可能遭到偽裝

無法驗證報文完整性,可能被篡改

https就是http加上加密處理(一般是ssl安全通訊線路)+認證+完整性保護

超文字傳輸協議 HTTP

方法 統一資源識別符號 uri 協議 版本出現在請求的第一行。這裡post是請求方法,examples default.jsp是uri,而http 1.1是協議 版本部分。每個http請求可以使用http標準裡邊提到的多種方法之一。http 1.1支援7種型別的請求 get,post,head,op...

http 超文字傳輸協議

html專門用於定義瀏覽器與伺服器之間交換資料的過程以及資料本身的格式 它是一種請求 響應式的協議 特點 1.支援客戶端 伺服器模式 2.簡單快速 客戶端只需向伺服器端傳送請求方式和路徑 3.靈活 允許傳送任何形式的資料,只需指定content type的值 4.無狀態 對事務處理沒有記憶能力 請求...

http超文字傳輸協議

應用層規範傳輸的格式,底層是tcp ip傳輸協議 http協議之請求 過程 接受響應 關閉通道 請求方式 請求方式有很多,也許格式不一樣,但是行,頭,空行一定有 有 options put delete trace connect 常用的有get post post 用哪個 get適合資料量小沒有安...