http協(xié)議個(gè)人理解

HTTP協(xié)議定義

http是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)阐污,客戶端是終端用戶休涤,服務(wù)器端是網(wǎng)站。通過(guò)使用web瀏覽器笛辟,網(wǎng)絡(luò)怕從或者其他的工具功氨,客戶端發(fā)起一個(gè)到服務(wù)器上指定端口(默認(rèn)80端口)的http請(qǐng)求,這個(gè)客戶端也被叫做用戶代理(user agent)手幢,應(yīng)答的服務(wù)器上存儲(chǔ)著一些數(shù)據(jù)捷凄,我們稱這個(gè)應(yīng)答服務(wù)器為源服務(wù)器,在用戶代理和源服務(wù)器中間可能存在多個(gè)中間層围来,比如代理跺涤,網(wǎng)管,或者隧道监透,盡管TCP/IP協(xié)議是互聯(lián)網(wǎng)上最流行的應(yīng)用桶错,HTTP協(xié)議并沒(méi)有規(guī)定必須使用他們,HTTP可以在任何其他互聯(lián)網(wǎng)協(xié)議上胀蛮,http只假定(其下層協(xié)議提供)可靠的傳輸院刁,任何能夠提供這種保證的協(xié)議都可以被使用,HTTP使用TCP而不是UDP的原因在于(打開(kāi))一個(gè)網(wǎng)頁(yè)必須傳送很多數(shù)據(jù)粪狼,而TCP協(xié)議提供傳輸控制退腥,按順序組織數(shù)據(jù),和錯(cuò)誤糾正

HTTP協(xié)議功能

HTTP協(xié)議是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議再榄,它可以使瀏覽器更加高效狡刘,使網(wǎng)絡(luò)傳輸減少,它不僅保證計(jì)算機(jī)正確快速的傳輸超文本文檔困鸥,還確定傳輸文檔中的那一部分嗅蔬,以及哪部分內(nèi)容首先顯示(如文本先與圖形)等 HTTP是客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議,在因特網(wǎng)上的web服務(wù)器上存放的都是超文本信息,客戶機(jī)需要通過(guò)HTTP協(xié)議傳輸要訪問(wèn)的超文本信息购城,HTTP包含命令和傳輸信息吕座,所以也可以同于其他因特網(wǎng)/內(nèi)聯(lián)網(wǎng)應(yīng)用系統(tǒng)之間的通信虐译,從而實(shí)現(xiàn)各類應(yīng)用資源超媒體訪問(wèn)的集成瘪板,我們?cè)跒g覽器的地址欄里輸入的網(wǎng)站地址叫做URL(統(tǒng)一資源定位符)

HTTP協(xié)議版本

HTTP/1.0發(fā)送請(qǐng)求,創(chuàng)建一次連接漆诽,獲得一個(gè)web資源侮攀,連接斷開(kāi)

HTTP/1.1 發(fā)送請(qǐng)求,創(chuàng)建一次連接厢拭,獲得多個(gè)web資源兰英,連接斷開(kāi)

HTTP協(xié)議的組成

HTTP協(xié)議由http請(qǐng)求和http響應(yīng)組成

請(qǐng)求包括:請(qǐng)求行,請(qǐng)求頭供鸠,請(qǐng)求體

響應(yīng)包括:響應(yīng)行畦贸,響應(yīng)頭,響應(yīng)體


http請(qǐng)求

請(qǐng)求行:POST/chapter17/user.html HTTP/1.1

格式:請(qǐng)求方式 資源路徑 協(xié)議/版本

請(qǐng)求行必須在http請(qǐng)求格式的第一行

get請(qǐng)求:將請(qǐng)求參數(shù)追加在url后面楞捂,不安全薄坏,url長(zhǎng)度限制了get請(qǐng)求方式數(shù)據(jù)的大小 沒(méi)有請(qǐng)求體,一般的HTTP請(qǐng)求都是GET

post請(qǐng)求:請(qǐng)求參數(shù)在請(qǐng)求體處寨闹,較安全胶坠,請(qǐng)求數(shù)據(jù)大小沒(méi)有顯示,只有表單設(shè)置為method="post"才是post請(qǐng)求繁堡,其他都是get請(qǐng)求

其他的請(qǐng)求方式還有:HEAD(類似get沈善,不過(guò)服務(wù)器只返回響應(yīng)頭)DELETE請(qǐng)求:刪除某一個(gè)資源 PUT請(qǐng)求:把資源放在指定位置

請(qǐng)求頭從第二行開(kāi)始,到第一個(gè)空格結(jié)束椭蹄,請(qǐng)求頭和請(qǐng)求體之間存在一個(gè)空格行 闻牡,請(qǐng)求頭通常以鍵值對(duì)方式傳遞數(shù)據(jù)

請(qǐng)求報(bào)文頭屬性:

referer:表示這個(gè)請(qǐng)求是從哪個(gè)url調(diào)過(guò)來(lái)的,通過(guò)百度籟搜索淘寶網(wǎng)绳矩,那么在進(jìn)入淘寶網(wǎng)的請(qǐng)求報(bào)文中罩润,referer的值就是:www.baidu.com 如果是直接訪問(wèn)就不會(huì)有這個(gè)頭 常用于防盜鏈

Accept:告訴服務(wù)端,該請(qǐng)求所能支持的響應(yīng)數(shù)據(jù)類型埋酬,專業(yè)術(shù)語(yǔ)成為MIME類型(文件類型的一種描述方式)Accept:text哨啃、html,application/xhtml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8?

MIME格式:大類型/小類型;參數(shù)

if-Modified-Sincce:瀏覽器通知服務(wù)器写妥,本地緩存的最后變更時(shí)間拳球。與另一個(gè)響應(yīng)頭組合控制瀏覽器頁(yè)面的緩存

Cokkie:客戶端的Cookie就是通過(guò)這個(gè)報(bào)文頭屬性傳給服務(wù)端的? 這里就有一個(gè)問(wèn)題 網(wǎng)站A怎么保證自己請(qǐng)求體中保存的cookie就是網(wǎng)站A而不是其他網(wǎng)站的,這就和cookie里面的jsessionid有關(guān)系詳情參考http://www.cnblogs.com/fnng/archive/2012/08/14/2637279.html

User-Agent:瀏覽器通知服務(wù)器珍特,客戶端瀏覽器與操作系統(tǒng)相關(guān)信息

Connection:表示客戶端與服務(wù)連接類型祝峻;Keep-Alive表示持久連接,close已關(guān)閉

Host:請(qǐng)求的服務(wù)器主機(jī)名

Content-Length:請(qǐng)求體的長(zhǎng)度

Content-Type:請(qǐng)求的與實(shí)體對(duì)應(yīng)的MIME信息,如果是post請(qǐng)求莱找,會(huì)有這個(gè)頭酬姆,默認(rèn)值為application/x-www-form-urlencoded,表示請(qǐng)求體內(nèi)容使用url編碼

Accept-Encoding:瀏覽器通知服務(wù)器奥溺,瀏覽器支持的數(shù)據(jù)壓縮格式辞色,如gzip壓縮

Accept-language:瀏覽器通知服務(wù)器,瀏覽器支持的語(yǔ)言浮定,各國(guó)語(yǔ)言

Cache-Control:指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制相满,對(duì)緩存進(jìn)行控制,如一個(gè)請(qǐng)求希望響應(yīng)返回的內(nèi)容在客戶端要被緩存一年桦卒,或不希望被緩存就可以通過(guò)這個(gè)報(bào)文打到目的

請(qǐng)求體:

當(dāng)請(qǐng)求方式是post時(shí)立美,請(qǐng)求體會(huì)有請(qǐng)求的參數(shù),格式如下username=zhangsan&password=123

HTTP響應(yīng)報(bào)文

HTTP的響應(yīng)報(bào)文也由三部分組成(響應(yīng)行+響應(yīng)頭+響應(yīng)體)


http響應(yīng)報(bào)文

響應(yīng)行:1 報(bào)文協(xié)議及版本方灾;2 狀態(tài)碼及狀態(tài)描述

狀態(tài)碼由三位數(shù)字組成建蹄,第一個(gè)定義了響應(yīng)的類別 1xx:指示信息,表示請(qǐng)求已接受裕偿,繼續(xù)處理

2xx:成功洞慎,表示請(qǐng)求已被成功接收,處理(200 ok:客戶端請(qǐng)求成功击费, 204 No Content:無(wú)內(nèi)容拢蛋,服務(wù)器成功處理,但未返回內(nèi)容蔫巩,一般用在指示客戶端向服務(wù)器發(fā)送信息谆棱,而服務(wù)器不用向客戶端返回什么信息的情況,不會(huì)刷新頁(yè)面圆仔, 206 Partial Content:服務(wù)器已經(jīng)完成了部分get請(qǐng)求(客戶端進(jìn)行了范圍請(qǐng)求)垃瞧。響應(yīng)報(bào)文中包含了Content-Range指定范圍的實(shí)體內(nèi)容

3xx :重定向 301:永久重定向,表示請(qǐng)求的資源已經(jīng)永久搬到了其他位置 302:臨時(shí)重定向坪郭,表示請(qǐng)求的資源零食搬到了其他位置 304:表示客戶端發(fā)送附帶條件的請(qǐng)求時(shí)(get辦法請(qǐng)求報(bào)文中的IF)條件不滿足个从,返回304時(shí),不包含任何響應(yīng)主體

4xx:客戶端錯(cuò)誤 400:客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤歪沃,服務(wù)器無(wú)法理解 401:請(qǐng)求未經(jīng)授權(quán)嗦锐,這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用 403:服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù) 404:請(qǐng)求資源不存子啊 比如沪曙,輸入了錯(cuò)誤的url 415:不支持的媒體類型

5xx:服務(wù)器端錯(cuò)誤奕污。服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求 500:服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤 503:服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常?

響應(yīng)報(bào)文頭液走,也是由多個(gè)屬性組成 服務(wù)器通過(guò)響應(yīng)頭籟控制瀏覽器的行為碳默,不同的頭瀏覽器操作不同

常見(jiàn)的響應(yīng)頭:

響應(yīng)頭

Content-Type:

常見(jiàn)的content-Type

multipart/form-data:常見(jiàn)的POST數(shù)據(jù)提交的方式贾陷,我們使用表單上傳文件時(shí),必須讓form的enctyped等于這個(gè)值

application/json 這個(gè)作為請(qǐng)求頭時(shí)用來(lái)告訴服務(wù)端消息主體是序列化后的JSON字符串嘱根,由于json規(guī)范的流行髓废,出了底版本ie之外的各大瀏覽器都原生支持JSON.stringify,服務(wù)端語(yǔ)言也都有處理json的函數(shù),使用JSON不會(huì)遇上什么麻煩该抒,JSON格式支持比鍵值對(duì)復(fù)雜得多的結(jié)構(gòu)化數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慌洪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子柔逼,更是在濱河造成了極大的恐慌蒋譬,老刑警劉巖割岛,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愉适,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡癣漆,警方通過(guò)查閱死者的電腦和手機(jī)维咸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惠爽,“玉大人癌蓖,你說(shuō)我怎么就攤上這事』樗粒” “怎么了租副?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)较性。 經(jīng)常有香客問(wèn)我用僧,道長(zhǎng),這世上最難降的妖魔是什么赞咙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任责循,我火速辦了婚禮,結(jié)果婚禮上攀操,老公的妹妹穿的比我還像新娘院仿。我一直安慰自己,他們只是感情好速和,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布歹垫。 她就那樣靜靜地躺著,像睡著了一般颠放。 火紅的嫁衣襯著肌膚如雪排惨。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天慈迈,我揣著相機(jī)與錄音若贮,去河邊找鬼省有。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谴麦,可吹牛的內(nèi)容都是我干的蠢沿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼匾效,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舷蟀!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起面哼,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤野宜,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后魔策,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體匈子,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年闯袒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虎敦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡政敢,死狀恐怖其徙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喷户,我是刑警寧澤唾那,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站褪尝,受9級(jí)特大地震影響闹获,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恼五,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一昌罩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灾馒,春花似錦茎用、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至容达,卻和暖如春古涧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背花盐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工羡滑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留菇爪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓柒昏,卻偏偏與公主長(zhǎng)得像凳宙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子职祷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • http協(xié)議有http0.9氏涩,http1.0,http1.1和http2三個(gè)版本有梆,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,863評(píng)論 0 3
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協(xié)議是指計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或...
    HoyaWhite閱讀 2,671評(píng)論 2 20
  • Web 頁(yè)面的實(shí)現(xiàn) Web 基于 HTTP 協(xié)議通信 客戶端(Client)的 Web 瀏覽器從 Web 服務(wù)器端...
    毛圈閱讀 1,087評(píng)論 0 2
  • 任何一個(gè)技術(shù)和知識(shí)在了解了大概之后還需要在學(xué)習(xí)和實(shí)踐中不斷總結(jié)是尖、思考才能真正掌握,變成自己的東西泥耀。用自己的方式分析...
    Bobby0322閱讀 647評(píng)論 1 5
  • 首先饺汹,有人覺(jué)得自己學(xué)了很多年英語(yǔ),也沒(méi)有長(zhǎng)進(jìn)爆袍,很受打擊首繁。我告訴你,英語(yǔ)水平的增長(zhǎng)不是像上臺(tái)階一樣陨囊,一層一層的...
    趙曉晴閱讀 410評(píng)論 0 0