1: http協議定義了瀏覽器怎麼向伺服器請求文件,以及怎麼把文件傳送給瀏覽器。從層級的角度看,http協議是面向事務的應用層協議。http報文通常使用tcp連線傳送。
2:http使用了面向連線的tcp作為傳輸層協議,保證了資料的可靠傳輸。
http協議是無連線的,通訊的雙發在交換http報文之前不需要先建立http連線
http協議是無狀態的,伺服器並不記得曾經訪問過的客戶,和訪問次數。這種特性簡化了伺服器的設計和支援大量併發的http請求
http在tcp的三次握手的前兩部分完成後,客戶端就把http請求報文作為第三個報文的資料傳送給伺服器。
3:http/1.0和http/1.1
http/1.0:使用的非持續連線,這會使伺服器的負擔很重。
http/1.1:使用了持續連線,有兩種工作方式,1:流水線方式---可以多請求多響應。2:非流水線方式--一次乙個請求
4:http報文
http報文--請求報文和響應報文,http是面向文字的。都由三部分組成:開始行、首部行、實體主體。
請求報文--請求行、首部行、實體主體
http請求的細節——請求行
請求行中的get 稱之為請求方式,請求方式有:
post、 get 、 head 、 options 、 delete 、 trace 、 put
常用的有: get 、 post
使用者如沒有設定,預設情況下瀏覽器向伺服器傳送的都是get 請求,例如在瀏覽器直接輸位址訪問,點超連結訪問等都是 get ,使用者如想把請求方式改為 post ,可通過更改表單的提交方式實現。
不管post 或 get ,都用於向伺服器請求某個 web 資源,這兩種方式的區別主要表現在資料傳遞上:
如請求方式為post 方式,則可以在請求的實體內容中向伺服器傳送資料, post 方式的特點:傳送的資料量無限制。
http請求的細節——首部行
用於http 請求中的常用頭
accept: text/html,image/* //允許的請求文件型別
accept-charset: iso-8859-1
accept-encoding: gzip,compress
accept-language: en-us,zh-cn //表示使用者希望優先得到中文版的請求文件
host: www.it315.org:80//主機網域名稱及埠號
if-modified-since: fri, 11 dec 2015 18:23:51 gmt
referer:
user-agent: mozilla/4.0 (compatible; msie 5.5; windows nt 5.0)
cookie
connection: close/keep-alive
date: fri, 11 dec 2015 18:23:51 gmt
http響應的細節——狀態行
狀態行
格式: http 版本號 狀態碼 原因敘述
舉例:http/1.1 200 ok
狀態碼用於表示伺服器對請求的處理結果,它是乙個三位的十進位制數。響應狀態碼分為5 類,如下所示:
響應狀態碼à典型情況
200(正常)
表示一切正常,返回的是正常請求結果。
302/307(臨時重定向)
指出被請求的文件已被臨時移動到別處,此文件的新的url 在 location 響應頭中給出。
304(未修改)
表示客戶機快取的版本是最新的,客戶機應該繼續使用它。
403(禁止)
伺服器理解客戶端請求,但拒絕處理它。通常由於伺服器上檔案或目錄的許可權設定所致。
404(找不到)
伺服器上不存在客戶機所請求的資源。
500(內部伺服器錯誤)
伺服器端的cgi 、 asp 、 jsp 等程式發生錯誤。
http響應細節——常用響應頭
http請求中的常用響應頭
location: //重定向url
server:apache tomcat
content-encoding: gzip
content-length: 80
content-language: zh-cn
content-type: text/html; charset=gb2312
last-modified: fri, 11 dec 2015 18:23:51 gmt
refresh: 1;url=
content-disposition: attachment; filename=aaa.zip
transfer-encoding: chunked
set-cookie:ss=q0=5lb_nq; path=/search
etag: w/"7777-1242234904000"
expires: -1
cache-control: no-cache
pragma: no-cache
connection: close/keep-alive
date: fri, 11 dec 2015 18:23:51 gmt
tcp建立連線/三次握手
四次揮手:
udp:提供了不面向連線通訊,適合一次傳輸小量資料,可靠性由應用層負責
TCP協議 UDP協議
tcp是面向連線的傳輸層的協議,它在程序互動時,會建立乙個鏈結,然後在傳輸資料之後會取消連線,tcp的鏈結是虛連線。每一條tcp連線只能有兩個端點,只能是點對點的資料鏈結,不能進行廣播。tcp提供可靠的按時交付的 無差錯的 不重複的 按序到達的服務 可靠有序 不丟不重 tcp提供全雙工通訊 傳送快取...
TCP和UDP協議理解
我們學習過什麼是 資料報 理解資料報,對於網路管理的網路安全具有至關重要的意義.比如,防火牆的作用本質就是檢測網路中的資料報,判斷其是否違反了預先設定的規則,協議 欄中有 tcp udp 等名詞,它們是什麼意思呢?現在我們就來講講什麼是tcp和udp 面向連線的tcp 面向連線 就是在正式通訊前必須...
對問題 Http是TCP協議還是UDP協議的回答
1 tcp ip是個協議組,可分為三個層次 網路層 傳輸層和應用層。在網路層有ip協議 icmp協議 arp協議 rarp協議和bootp協議。在傳輸層中有tcp協議與udp協議。在應用層有ftp http telnet smtp dns等協議。因此,http本身就是乙個協議,是從web伺服器傳輸超...