HTTP相關知識

2021-10-08 02:28:38 字數 2434 閱讀 4112

一.http協議的定義:二.http協議的特點:

2.多次http請求

在客戶端請求網頁時多數情況下並不是一次請求就能成功的,服務端首先是響應html頁面,然後瀏覽器收到響應之後發現html頁面還引用了其他的資源,例如,css,js檔案,等等,還會自動傳送http請求這些需要的資源。現在的http版本支援管道機制,可以同時請求和響應多個請求,大大提高了效率。

3.基於tcp協議

http協議目的是規定客戶端和服務端資料傳輸的格式和資料互動行為,並不負責資料傳輸的細節。底層是基於tcp實現的。現在使用的版本當中是預設持久連線的,也就是多次http請求使用乙個tcp連線。

•100:這個狀態碼是告訴客戶端應該繼續傳送請求,這個臨時響應是用來通知客戶端的,

•200:請求被正常處理

•202:表示伺服器已經接受了請求,但是還沒有處理,而且這個請求最終會不會處理還不確定

•204:請求被受理但沒有資源可以返回

•206:客戶端只是請求資源的一部分,伺服器只對請求的部分資源執行get方法,相應報文中通過content-range指定範圍的資源。

•301:永久性重定向

•302:臨時重定向

•303:與302狀態碼有相似功能,只是它希望客戶端在請求乙個uri的時候,能通過get方法重定向到另乙個uri上

•304:傳送附帶條件的請求時,條件不滿足時返回,與重定向無關

•307:臨時重定向,與302類似,只是強制要求使用post方法

•400:請求報文語法有誤,伺服器無法識別

•401:請求需要認證

•403:請求的對應資源禁止被訪問

•404:伺服器無法找到對應資源

•500:伺服器內部錯誤

•503:伺服器正忙

http 是無狀態(stateless)協議。也就是說 http 協議自身不對請求和響應之間的通訊狀態進行儲存。就相當於它被訪問了2次,不知道是哪兩人訪問的,或者是乙個人訪問兩次。

我們怎麼可以讓他記住我們的狀態呢,就是通過會話跟蹤技術。

會話跟蹤技術有哪幾種?(cookie , session , url重寫

cookie是一種由伺服器傳送給客戶的片段資訊,儲存在客戶端瀏覽器的記憶體中或硬碟上,在客戶隨後對該伺服器的請求中發回它。cookie以「鍵-值」對的形式記錄會話跟蹤的內容。

比如①我們在 cookie 中儲存已經登入過的使用者資訊,下次訪問**的時候頁面可以自動幫你登入的一些基本資訊給填了;

②一般的**都會有保持登入也就是說下次你再訪問**的時候就不需要重新登入了,這是因為使用者登入的時候我們可以存放了乙個 token 在 cookie 中,下次登入的時候只需要根據 token 值來查詢使用者即可(為了安全考慮,重新登入一般要將 token 重寫);

③登入一次**後訪問**其他頁面不需要重新登入。

客戶端可以阻止伺服器寫入cookie 所以說cookie不太可靠 另外也不安全

更安全的是基於session的httpsession物件,cookie只能寫文字 有長度限制 4096位元組 session沒有限制。

原理

使用者第一次傳送請求的時候,伺服器建立乙個httpsession物件,用來儲存該物件資料,並把該物件的id返回給使用者;使用者第二次傳送請求的時候把id一起傳送給伺服器,伺服器根據id號尋找相應的資料。

應用場景是購物車,當你要新增商品到購物車的時候,系統不知道是哪個使用者操作的,因為 http 協議是無狀態的。服務端給特定的使用者建立特定的 session 之後就可以標識這個使用者並且跟蹤這個使用者了。

大部分情況下,我們都是通過在 cookie (會話cookie )中附加乙個 session id 來方式來跟蹤。

cookie 被禁用怎麼辦?

最常用的就是利用 url 重寫把 session id 直接附加在url路徑的後面。

uri的作用像身份證號一樣,url的作用更像家庭住址一樣。url是一種具體的uri,它不僅唯一標識資源,而且還提供了定位該資源的資訊。

http 相關知識

1.http1.1協議 主要是增加了持久連線的技術,瀏覽器訪問乙個web頁面時,會根據返回的html頁面解析,如果遇到比如img,css或者js檔案時,它會發起後續的http請求去獲取資源,每一次都會有tcp的建立和關閉,很消耗效能。來自所以http1.1提出了持久化連線的概念,只需要建立一次連線,...

HTTP協議相關知識

所有http響應的第一行都是狀態行,依次是當前http版本號,3位數字組成的狀態 以及描述狀態的短語,彼此由空格分隔。狀態 的第乙個數字代表當前響應的型別 1xx訊息 請求已被伺服器接收,繼續處理 2xx成功 請求已成功被伺服器接收 理解 並接受 3xx重定向 需要後續操作才能完成這一請求 4xx請...

Http 協議相關知識

1 什麼是http協議?http協議是超文字傳輸協議的縮寫,英文是hyper text transfer protocol。是從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。2 什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後...