天天看點

HTTP協定

1.什麼是協定?

  協定:是通信雙方應該遵守的一個共同的規則。隻有雙方按照指定的規則,一方發送資料,另外一方才能接受到資料。

2.什麼是http協定?

  在網際網路中,我們通過浏覽器通路其他的網站,預設都會使用http協定。用戶端和伺服器之間進行互動的規則。

  html : 超文本 标記語言

  http的特點:

  1、http協定是基于TCP協定,基于應用層

  2、預設端口是80(如果端口号是80,可以省略不寫)

    http://www.baidu.com:80

    http://www.baidu.com

  3、http協定永遠是用戶端(浏覽器或者手機等)發送請求,伺服器回送響應

HTTP協定

  

  用戶端通路服務端稱為用戶端的請求,伺服器給浏覽器回送資料稱為伺服器的響應。

3.

4.http協定中請求格式

  http規定:請求的資料必須分成三部分:

  1、 請求行

  2、 請求頭

  3、 請求體

  Get方式:(參數在請求行内)

HTTP協定

  Post方式:(參數在請求行内)

HTTP協定

請求行:分成3部分:

  用戶端請求伺服器時使用的請求方式:GET、POST

  用戶端請求伺服器的資源路徑:/request 1

  請求時用戶端使用的協定:http/1.1

明顯缺陷:浏覽器和伺服器建立連接配接後,每次隻能處理一次請求。

為了克服上述1.0的缺陷,http1.1 應運而生。它支援持久連接配接,也就是說在一個TCP連接配接上可以傳送多個http請求和響應,進而減少建立和關閉連接配接的消耗延時。

請求頭:

它是有key和value組成的資料,key和value之間必須使用冒号隔開。一個key可以對應多個value值。 

Host:用戶端請求的伺服器的主機的ip

User-Agent:表示的是用戶端在使用什麼浏覽器通路伺服器(在學習下載下傳時使用)

Accept:告訴伺服器,用戶端可以接受的資料類型

Cookie: 是伺服器發給浏覽器的資料,在本次通路的時候浏覽器會自動帶給伺服器。如果使用者的浏覽器是第一次通路某個網站,在請求頭中是不會有這個Cookie,隻有後續的通路才會有。

Cache-Control:控制緩存的。

根據使用者的請求次數,或者是用戶端的設定,那麼每次請求伺服器的時候,可能攜帶的頭都不一樣。

Accept: text/html,image/*    

Accept-Charset: ISO-8859-1

Accept-Encoding: gzip

Accept-Language:zh-cn

Host: www.itcast.com:80

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT  它記錄的是目前網站的最後一次修改時間

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)  它使用下載下傳

Connection: close/Keep-Alive    

Date: Tue, 11 Jul 2000 18:23:51 GMT

注意:在請求中,隻有post請求方式,才會有請求體;get方式的請求,請求資料中是沒有請求體的。

5. HTTP協定中的響應格式(伺服器 --》 浏覽器)

  http協定中在定義響應格式:分成3部分:

  1、 響應行

  2、 響應頭

  3、 響應體

響應行:分成三部分:

伺服器給用戶端響應資料使用的協定:http/1.1

200 狀态碼

OK 狀态資訊

響應行中的狀态碼:

1xx 表示用戶端請求伺服器的時候資料不完整

2xx 表示伺服器響應資料成功   200

3xx 表示的是重定向  

   302:請求重定向。      A找B借錢,B說我沒有,但是我告訴你找C借錢,A就會自動的找C

   304:伺服器告訴用戶端,通路的資源沒有修改,請浏覽器去自己的緩存中找資料。

4xx 伺服器沒有這個資源。 404 找不到資源

5xx 伺服器内部異常了。

響應頭:

Server:apache tomcat

Content-Encoding: gzip

Content-Length: 80

Content-Language: zh-cn

Content-Type: text/html; charset=GB2312

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  告訴用戶端這次請求的資源在伺服器中最後一次的修改時間

Refresh: 1;url=http://www.it315.org  定時重新整理

Content-Disposition: attachment; filename=aaa.zip

Expires: -1

Cache-Control: no-cache    告訴浏覽器不允許緩存目前的資源資料

Pragma: no-cache   

Connection: close (關閉)/Keep-Alive(保持連接配接)    

響應體:浏覽器需要顯示的資料

http協定:超文本傳輸協定。http協定它是基于請求和響應而設計的協定。

請求和響應模型:一次請求,必然會有一次響應。它們是一一對應的。沒有請求,不會有響應。

繼續閱讀