HTTP協議基礎

2022-04-29 08:51:09 字數 3874 閱讀 6406

http協議(hypertext transfer protocol,超文字傳輸協議)是網際網路上應用最為廣泛的一種網路傳輸協議,所有的www檔案都必須遵守這個標準

http是基於tcp/ip通訊協議來傳遞資料(html 檔案, 檔案, 查詢結果等)

http協議通常承載於tcp協議之上,有時也承載於tls或ssl協議層之上,這個時候,就成了我們常說的https

http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。http是乙個無狀態的協議

http預設的埠號為80,https的埠號為443

http請求訊息由四部分構成:請求行、請求頭部、空行、請求主體

首行結構為[方法] + [url] + [版本]

url的標準如下:

協議://伺服器ip[:埠]/路徑/[?查詢]

請求方法如下:

get一般用於獲取/查詢資源資訊,而post一般用於更新資源資訊(常用)

即為請求的屬性,全部為以冒號分割的鍵值對,請求頭只出現在http請求中,請求報頭允許客戶端向伺服器端傳遞請求的附加資訊和客戶端自身的資訊。

常見請求頭:

①host

host請求報頭域主要用於指定被請求資源的interbet主機和埠號

②user-agent

user-agent請求報頭域允許客戶端將他的作業系統,瀏覽器和其他屬性告訴伺服器。

③referer

referer包含乙個url,代表當前訪問url的上乙個url,也就是說使用者是從什麼地方來到當前頁面。

④cookies

cookies是非常重要的請求頭,她是一段文字,常用來表示請求者身份等。

⑤range

x-forwarded-for即xxf頭,它代表請求端的ip,可以有多個,中間由逗號隔開。

⑦accept

accept請求報頭域用於指定客戶端接手那些mime型別的資訊,如accept:text/html,表明客戶端希望接收html文字。

⑧accept-charset

請求報頭域用於指定客戶端接收的字符集。例如:accept-charset:iso-8859-1,gb2312。如果在請求訊息中設定這個域,預設是任何字符集都可以接收。

e.g:

用於區分請求頭部資訊和請求正文,必不可少

可選部分,比如get請求就沒有請求正文,若方法欄位是post,則通常來說此處放置的就是要提交的資料;比如要使用post方法提交乙個表單,其中有user欄位中資料為「admin」, password欄位為123456,那麼這裡的請求資料就是 user=admin&password=123456,使用&來連線各個字段。

響應行一般由協議版本、狀態碼及其描述組成 比如 http/1.1 200 ok;

其中協議版本http/1.1或者http/1.0,200就是它的狀態碼,ok則為它的描述

常見狀態碼:

200~299:表示成功接收請求並已完成整個處理過程。常用200

300~399:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動乙個新位址、常用302(意味著你請求我,我讓你去找別人),307和304(我不給你這個資源,自己拿快取)

400~499:客戶端的請求有錯誤,常用404(意味著你請求的資源在web伺服器中沒有)403(伺服器拒絕訪問,許可權不夠)

500~599:伺服器端出現錯誤,常用500

響應頭是伺服器根據請求向客戶端傳送的http頭

①server

伺服器所使用的web伺服器名稱,如server:apache/1.3.6(unix),攻擊者通過檢視此頭,可以探測web伺服器名稱。所以,建議伺服器端修改此頭資訊。

②set-cookie

向客戶端設定cookie,通過檢視此頭,可以清楚看到伺服器向客戶端傳送的cooie資訊。

③last-modified

伺服器通過這個頭告訴瀏覽器,資料的最後修改時間。

④location

伺服器通過這個頭告訴瀏覽器去訪問那個頁面,瀏覽器接收到這個請求之後,通常會立刻訪問localtion頭所指向的頁面。這個頭通常配合302狀態碼使用。

⑤refresh

伺服器通過refresh頭告訴瀏覽器定時重新整理瀏覽器。

普通頭:在普通報頭中,有少數報頭域用於所有請求和響應訊息 ,但並不用於被傳輸的實體,只用於傳輸的訊息。例如:

date,表示訊息產生的日期和時間。

connection,允許傳送指定連線的選項。例如,指定連線是連續的,或者指定連線「close」選項,通知伺服器,在響應完成後,關閉連線。

cache-control,用於指定快取指令,快取指令是單向的,且是獨立的。

普通頭了解即可

實體頭:請求和響應訊息都可以傳送乙個實體頭。實體頭定義了關於實體正文和請求所表示的資源的元資訊。元資訊也就是實體內容的屬性,包括實體資訊型別、長度、壓縮方法、最後一次修改時間等。常見的實體頭如下。

content-type

content-type實體頭用於向接收方指示實體的介質型別。

content-encoding

content-encoding頭被用作**型別的修飾符,它的值指示了已經被應用到實體正文的附加內容的編碼,因而要獲得中content-type報頭域所引用的**型別,必須採用相應的解碼機制。

content-length

content-length實體報頭用於指明實體正文的長度,以位元組方式儲存的十進位制數字來表示。

last-modified

last-modified實體報頭用於指示資源的最後修改日期和時間。

常見的content-type:

作用同上空行相同

響應體就是響應的訊息體,如果是純資料就是返回純資料,如果請求的是html頁面,那麼返回的就是html**,如果是js就是js**。

https協議是以安全為目標的http通道,其實就是http的「公升級」版本,只是它單純的比http協議更安全。

https的安全基礎是ssl,即在http下加入ssl層。也就是https通過安全傳輸機制進行資料傳輸,這種機制可保護網路傳送的所有資料的隱秘性與完整性,可以降低非侵入性攔截攻擊的可能性。

http協議與https協議的主要區別如下:

http協議基礎

定義 http協議是一種基於請求 響應模式的,無狀態協議.請求方法 http 1.1 方法 作用 get 請求獲取由request uri所所標識的資源 post 在request uri所標識的資源後附加新的資訊 head 請求獲取由request uri所所標識的資源的響應訊息報頭 put 請求...

Http協議基礎

一直忽略了一些最基礎,最本質的東西。是時候該補補了 http基於請求與響應模式的 無狀態的 應用層的協議,常基於tcp的連線方式。http允許傳輸任意型別的資料物件,http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致...

http協議基礎

安全牛 web安全課程筆記 明文 https只能提高傳輸層安全。而且不防中間人 無狀態 cookie cycle 請求 響應 header set cookie 伺服器發給客戶端 content length 可以用於快速鑑別不同的頁面 由伺服器發給客戶端 location 重定向使用者到另乙個頁面...