D14 HTTP協(xié)議

HTTP協(xié)議

HTTP協(xié)議是學(xué)習(xí)java web 開發(fā)的基石,不深入了解HTTP協(xié)議,就不能說掌握了WEB開發(fā),更無法管理和維護一些復(fù)雜的WEB站點.

OSI七層協(xié)議:

  • 應(yīng)用層
    • HTTP協(xié)議
    • FTP
    • SMTP
    • POP3
    • TELNET
  • 表示層
  • 會話層
  • 傳輸層
    • TCP
    • UDP
  • 網(wǎng)絡(luò)層
  • 數(shù)據(jù)鏈路層
  • 物理層

基本定義:

  • 基于TCP/IP(傳輸層)協(xié)議的應(yīng)用層協(xié)議
  • 規(guī)定客戶端和服務(wù)器如何進行交互;
  • HTTP基于請求響應(yīng)模型;
  • 一次請求對應(yīng)一次相應(yīng),且請求只能由客戶端發(fā)出,服務(wù)器只能被動的等待而做出響應(yīng).

HTTP1.1和HTTP1.0的區(qū)別

在HTTP1.0協(xié)議中,客戶端與web服務(wù)器建立連接后,只能獲得一個web資源,用后就斷開了服務(wù)器.

HTTP1.1 協(xié)議中,允許客戶端與web服務(wù)器建立連接后,在一個連接上獲得多個web資源.keep alive

http協(xié)議詳情

一個http協(xié)議分為兩個部分,一個是響應(yīng)部分,一個是請求部分.

http 請求

請求是由客戶端發(fā)出的

    GET /news/1.html HTTP/1.1 -- 請求頭
   Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*
   Accept-Language: zh-CN
   User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
   Accept-Encoding: gzip, deflate
   Host: 127.0.0.1
   Connection: Keep-Alive
   
   

GET /news/1.html HTTP/1.1

請求頭分為三個部分:
請求頭(GET)+請求的資源部分的名稱(/news/1.htm)+所遵循的協(xié)議版本(HTTP/1.1)

七種請求方式:

  • POST;
  • GET;
  • HEAD;
  • OPTIONS;
  • DELETE;
  • TRACE;
  • PUT.

真正使用的時候:POST/GET是常用的.

GET請求方式和POST請求區(qū)別在于請求參數(shù)在傳遞的過程中方式不同

如果是GET提交,請求參數(shù)將會附加在請求的URL后面作為請求地址的一部分帶到服務(wù)器端,可以傳輸?shù)臄?shù)據(jù)大小有限制一般不允許超過1K.

http://127.0.0.1/news/1.html?username=99999&password=0000000000

如果是POST提交,請求參數(shù)將會在http請求的實體內(nèi)容中進行傳輸,這種方式傳輸?shù)臄?shù)據(jù)沒有大小限制.

利用form表單提交數(shù)據(jù)時,form表明明確的聲明要用POST提交,這是請求參數(shù)就是POST提交

    <form action="#" Method="POST">
        用戶名:<Input type="text" name="username" />
        密碼:<Input type="password" name="password">
        <input type="submit" value="提交"/>
    </form>

除此以外所有方式的請求參數(shù)都是GET提交

一些主要的請求頭:

請求頭 含義
Accept: / //接受的文件類型; 可以接受各種類型的文件
Accept-Charset: ISO-8859-1 所接受的字符節(jié)編碼;
Accept-Encoding: gzip, deflate 所接受的數(shù)據(jù)的壓縮格式;
Accept-Language: zh-CN 語言環(huán)境;當(dāng)前瀏覽器的首選語言環(huán)境;
Host: 127.0.0.1 訪問的虛擬主機名稱;
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
Referer: http://www.it315.org/index.jsp 當(dāng)前頁面來自哪一個頁面.
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 當(dāng)前瀏覽器的基本信息;
Cookie
Connection: close/Keep-Alive 控制請求響應(yīng)完的,是否關(guān)閉或保持.
Date: Tue, 11 Jul 2000 18:23:51 GMT 當(dāng)前請求發(fā)送的時間.

<空格>

請求實體

http響應(yīng)

- 狀態(tài)行

格式: HTTP版本號 狀態(tài)碼 原因敘述
eg: HTTP/1.1 200 OK

協(xié)議版本

狀態(tài)碼 // 用來表示本次的請求的處理結(jié)果代碼.

狀態(tài)碼 含義
200 請求完成,并完成整個處理過程;
302 請求重定向;
304/307 使用緩存資源有關(guān) eg: HTTP/1.1 304 Not Modified
404 客戶端請求錯誤
500 服務(wù)器端出現(xiàn)錯誤.

- 若干響應(yīng)頭

響應(yīng)頭 含義
Location: http://www.it315.org/index.jsp 302和location 實現(xiàn)請求重定項
Server:apache tomcat 服務(wù)器的基本信息
Content-Encoding: gzip 服務(wù)器發(fā)送出去的文件所使用的的格式
Content-Length: 80 發(fā)送回去數(shù)據(jù)的總長度
Content-Language: zh-cn 發(fā)送數(shù)據(jù)的語言環(huán)境
Content-Type: text/html; charset=GB2312 當(dāng)前發(fā)送過去的數(shù)據(jù)是什么格式的數(shù)據(jù),編碼格式
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
Refresh: 1;url=http://www.it315.org 若干秒以后訪問指定的網(wǎng)站
Content-Disposition: attachment;filename=aaa.zip 下載有關(guān)的數(shù)據(jù)
Transfer-Encoding: chunked ...
Set-Cookie:SS=Q0=5Lb_nQ; path=/search ...
ETag: W/"83794-1208174400000"
Expires: -1 通知瀏覽器是否緩存當(dāng)前資源,如果這個頭的值是一個以毫秒為單位值就是通知瀏覽器緩存資源到指定的時間點,如果值是0或-1則是通知瀏覽器禁止緩存.
Cache-Control: no-cache 通知瀏覽器是否緩存資源
Pragma: no-cache 通知瀏覽器是否緩存資源
Connection: close/Keep-Alive 是否繼續(xù)保持連接
Date: Tue, 11 Jul 2000 18:23:51 GMT 響應(yīng)時間

<空行>

實體內(nèi)容 返回的內(nèi)容.

作業(yè):

1.請寫一篇關(guān)于HTTP協(xié)議的筆記经宏,要求:
描述清楚HTTP請求頭、響應(yīng)頭的格式
請求頭和響應(yīng)頭中各個頭字段的含義
2.如果瀏覽器傳遞給WEB服務(wù)器的參數(shù)內(nèi)容超過1K,應(yīng)該使用那種方式發(fā)送請求消息?
post
3.請描述200般眉、302吨娜、304问拘、404和500等響應(yīng)狀態(tài)碼所表示的意義巷折。

狀態(tài)碼 含義
200 請求完成,并完成整個處理過程;
302 請求重定向;
304/307 使用緩存資源有關(guān) eg: HTTP/1.1 304 Not Modified
404 客戶端請求錯誤
500 服務(wù)器端出現(xiàn)錯誤.

4.請列舉三種禁止瀏覽器緩存的頭字段压鉴,并寫出相應(yīng)的設(shè)置值。

響應(yīng)頭 含義
Expires: -1 通知瀏覽器是否緩存當(dāng)前資源,如果這個頭的值是一個以毫秒為單位值就是通知瀏覽器緩存資源到指定的時間點,如果值是0或-1則是通知瀏覽器禁止緩存.
Cache-Control: no-cache 通知瀏覽器是否緩存資源
Pragma: no-cache 通知瀏覽器是否緩存資源
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锻拘,一起剝皮案震驚了整個濱河市油吭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌署拟,老刑警劉巖婉宰,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異推穷,居然都是意外死亡心包,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門馒铃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟹腾,“玉大人,你說我怎么就攤上這事区宇⊥拗常” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵议谷,是天一觀的道長炉爆。 經(jīng)常有香客問我,道長柿隙,這世上最難降的妖魔是什么叶洞? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任鲫凶,我火速辦了婚禮禀崖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘螟炫。我一直安慰自己波附,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布昼钻。 她就那樣靜靜地躺著掸屡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪然评。 梳的紋絲不亂的頭發(fā)上仅财,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音碗淌,去河邊找鬼盏求。 笑死抖锥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碎罚。 我是一名探鬼主播磅废,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荆烈!你這毒婦竟也來了拯勉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤憔购,失蹤者是張志新(化名)和其女友劉穎宫峦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玫鸟,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡斗遏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鞋邑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诵次。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枚碗,靈堂內(nèi)的尸體忽然破棺而出逾一,到底是詐尸還是另有隱情,我是刑警寧澤肮雨,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布遵堵,位于F島的核電站,受9級特大地震影響怨规,放射性物質(zhì)發(fā)生泄漏陌宿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一波丰、第九天 我趴在偏房一處隱蔽的房頂上張望壳坪。 院中可真熱鬧,春花似錦掰烟、人聲如沸爽蝴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝎亚。三九已至,卻和暖如春先馆,著一層夾襖步出監(jiān)牢的瞬間发框,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工煤墙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梅惯,地道東北人顾患。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像个唧,于是被迫代替她去往敵國和親江解。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容