http是基於客戶/伺服器模式,且面向連線的。典型的http事務處理有如下的過程:
(1)客戶與伺服器建立連線;
(2)客戶向伺服器提出請求;
(3)伺服器接受請求,並根據請求返回相應的檔案作為應答;
(4)客戶與伺服器關閉連線。
客戶與伺服器之間的http連線是一種一次性連線,它限制每次連線只處理乙個請求,當伺服器返回本次請求的應答後便立即關閉連線,下次請求再重新建立連線。
http是一種無狀態協議,即伺服器不保留與客戶交易時的任何狀態。這就大大減輕了伺服器記憶負擔,從而保持較快的響應速度。
http是一種物件導向的協議。允許傳送任意型別的資料物件。
(參考1. 建立tcp連線
建立tcp連線在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp/ip協議族,因此internet又被稱作是tcp/ip網路。http是比tcp更高層次的應用層協議,根據規則,只有低層協議建立之後才能進行更高層協議的連線,因此,首先要建立tcp連線,一般tcp連線的埠號是80。
2. web瀏覽器向web伺服器傳送請求行
web瀏覽器向web伺服器傳送請求命令一旦建立了tcp連線,web瀏覽器就會向web伺服器傳送請求命令。例如:get/sample/hello.jsp http/1.1。
3. web瀏覽器傳送請求頭
瀏覽器傳送其請求命令之後,還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。
4. web伺服器應答
客戶機向伺服器發出請求後,伺服器會客戶機回送應答, http/1.1 200 ok ,應答的第一部分是協議的版本號和應答狀態碼。
5. web伺服器傳送應答頭
正如客戶端會隨同請求傳送關於自身的資訊一樣,伺服器也會隨同應答向使用者傳送關於它自己的資料及被請求的文件。
6. web伺服器向瀏覽器傳送資料
web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料。
7. web伺服器關閉tcp連線
web伺服器關閉tcp連線一般情況下,一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**:connection:keep-alivetcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。
無狀態協議指對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊。
也就是說,當客戶端一次http請求完成以後,客戶端再傳送一次http請求,http並不知道當前客戶端是乙個「老使用者」
怎麼解決http協議無狀態
可以使用cookie來解決無狀態的問題,cookie就相當於乙個通行證,第一次訪問的時候給客戶端傳送乙個cookie,當客戶端再次來的時候,拿著cookie(通行證),那麼伺服器就知道這個是」老使用者「。
請求報文包含四部分:
響應報文包含四部分:
常見的首部:
請求首部字段(請求報文會使用的首部字段)
響應首部字段(響應報文會使用的首部字段)
實體首部字段(請求報文與響應報文的的實體部分使用的首部字段)
***就簡要概括一下:
什麼是HTTP及相關知識
一種通訊協議 被各類智慧型終端 手機 電腦 智慧型電視等等 使用 http客戶端發起請求,建立到伺服器指定埠的tcp連線。http伺服器在埠監聽客戶端請求 http伺服器向客戶端返回狀態 eg 狀態碼200 和內容 chorme搜尋自身的dns快取 可以在chrome中輸入chrome net in...
http 相關知識
1.http1.1協議 主要是增加了持久連線的技術,瀏覽器訪問乙個web頁面時,會根據返回的html頁面解析,如果遇到比如img,css或者js檔案時,它會發起後續的http請求去獲取資源,每一次都會有tcp的建立和關閉,很消耗效能。來自所以http1.1提出了持久化連線的概念,只需要建立一次連線,...
HTTP相關知識
一.http協議的定義 二.http協議的特點 2.多次http請求 在客戶端請求網頁時多數情況下並不是一次請求就能成功的,服務端首先是響應html頁面,然後瀏覽器收到響應之後發現html頁面還引用了其他的資源,例如,css,js檔案,等等,還會自動傳送http請求這些需要的資源。現在的http版本...