http協(xié)議


http協(xié)議

1.背景介紹

2.知識剖析

3.常見問題

4.解決方案

5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

7.參考文獻(xiàn)

8.更多討論

1.背景介紹

什么是http協(xié)議数焊?

http協(xié)議(HyperText Transfer Protocol温峭,超文本傳協(xié)議)是一種用于分布式,協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議,

是用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議煎谍。

特點(diǎn):

1坊萝、簡單快速:客戶向服務(wù)器請求服務(wù)時(shí),只需傳送請求方法和路徑句狼。

請求方法常用的有GET笋熬、HEAD、POST等腻菇。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同胳螟。由于HTTP協(xié)議簡單昔馋,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快糖耸。

靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象秘遏。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。

3.無連接:無連接的含義是限制每次連接只處理一個請求嘉竟。服務(wù)器處理完客戶的請求邦危,并收到客戶的應(yīng)答后,即斷開連接舍扰。采用這種方式可以節(jié)省傳輸時(shí)間倦蚪。

4.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力边苹。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息陵且,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大个束。另一方面慕购,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。

5茬底、支持B/S及C/S模式沪悲。

2.知識剖析

URL

HTTP使用統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers, URI)來傳輸數(shù)據(jù)和建立連接。URL是一種特殊類型的URI桩警,全稱是UniformResourceLocator,

中文叫統(tǒng)一資源定位符,是互聯(lián)網(wǎng)上用來標(biāo)識某一處資源的地址可训,包含了用于查找某個資源的足夠的信息。

以下面這個URL為例捶枢,介紹下普通URL的各部分組成:

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

1.協(xié)議部分:該URL的協(xié)議部分為“http:”握截,這代表網(wǎng)頁使用的是HTTP協(xié)議。在Internet中可以使用多種協(xié)議烂叔,如HTTP谨胞,F(xiàn)TP等等本例中使用的是HTTP協(xié)議。在"HTTP"后面的“//”為分隔符蒜鸡。

2.域名部分:該URL的域名部分為“www.aspxfans.com”胯努。一個URL中,也可以使用IP地址作為域名使用逢防。

3.端口部分:跟在域名后面的是端口叶沛,域名和端口之間使用“:”作為分隔符。端口不是一個URL必須的部分忘朝,如果省略端口部分灰署,將采用默認(rèn)端口。

4.虛擬目錄部分:從域名后的第一個“/”開始到最后一個“/”為止,是虛擬目錄部分溉箕。虛擬目錄也不是一個URL必須的部分晦墙。本例中的虛擬目錄是“/news/”

5.文件名部分:從域名后的最后一個“/”開始到“?”為止肴茄,是文件名部分晌畅,如果沒有“?”,則是從域名后的最后一個“/”開始到“#”為止,是文件部分寡痰,如果沒有“抗楔?”和“#”,那么從域名后的最后一個“/”開始到結(jié)束氓癌,都是文件名部分谓谦。

本例中的文件名是“index.asp”。文件名部分也不是一個URL必須的部分贪婉,如果省略該部分,則使用默認(rèn)的文件名

6.錨部分:從“#”開始到最后卢肃,都是錨部分疲迂。本例中的錨部分是“name”。錨部分也不是一個URL必須的部分莫湘。

7.參數(shù)部分:從“尤蒿?”開始到“#”為止之間的部分為參數(shù)部分,又稱搜索部分幅垮、查詢部分腰池。本例中的參數(shù)部分為“boardID=5&ID=24618&page=1”。參數(shù)可以允許有多個參數(shù)忙芒,參數(shù)與參數(shù)之間用“&”作為分隔符示弓。

3.常見問題

http請求content-Type有幾種?

Content-Type呵萨,內(nèi)容類型奏属,用于定義網(wǎng)絡(luò)文件的類型和網(wǎng)頁的編碼,瀏覽器根據(jù)該參數(shù)來決定數(shù)據(jù)的打開方式潮峦。

Content-Type使用的是 “主類型/子類型; 額外參數(shù)” (? [type]/[subtype]; parameter )的數(shù)值格式囱皿。

“主類型” (type)主要有以下幾種:

1. text:用于標(biāo)準(zhǔn)化地表示的文本信息,文本消息可以是多種字符集和或者多種格式的忱嘹; 默認(rèn)是text/plain嘱腥。

2. multipart:用于連接消息體的多個部分構(gòu)成一個消息,這些部分可以是不同類型的數(shù)據(jù)拘悦; 默認(rèn)是multipart/mixed齿兔。

3. application:用于傳輸應(yīng)用程序數(shù)據(jù)或者二進(jìn)制數(shù)據(jù); 默認(rèn)是application/octet-stream。

4. message:用于包裝一個E-mail消息愧驱。

5. image:用于傳輸靜態(tài)圖片數(shù)據(jù)慰技。

6. audio:用于傳輸音頻或者音聲數(shù)據(jù)。

7. video:用于傳輸動態(tài)影像數(shù)據(jù)组砚,可以是與音頻編輯在一起的視頻數(shù)據(jù)格式吻商。

“子類型” (subtype)用于指定"主類型"的詳細(xì)形式。 其中以x-開頭表示該類別尚未標(biāo)準(zhǔn)化 糟红。當(dāng)客戶端不能確定“子類型”時(shí)艾帐,會根據(jù)“主類型”來獲取默認(rèn)的子類型。

"額外參數(shù)" (parameter)用于指定請求/響應(yīng)內(nèi)容的字符編碼格式盆偿。例如text/html;charset=utf-8柒爸;

http狀態(tài)碼

1開頭代表消息,代表請求已被接收,需要繼續(xù)處理,這類響應(yīng)只是臨時(shí)響應(yīng)

2開頭代表成功,這一類型的狀態(tài)碼代表請求已成功被服務(wù)器接收,理解

3開頭代表重定向.這類狀態(tài)碼代表需要客戶端采取進(jìn)一步的操作才能完成請求,通常,這些狀態(tài)碼用來重定向,后續(xù)的地址(重定向目標(biāo))在本次響應(yīng)的location域中指明

4開頭代表請求錯誤,這類狀態(tài)碼代表客戶端看起來可能發(fā)生了錯誤,妨礙了服務(wù)器的處理

5開頭代表服務(wù)器在處理請求的過程有錯誤或者異常狀態(tài)發(fā)生

常見的狀態(tài)碼

200:請求已成功,請求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回事扭。

404:請求失敗捎稚,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn),出現(xiàn)這個錯誤的最有可能的原因是服務(wù)器端沒有這個頁面求橄。

500:服務(wù)器遇到了一個未曾預(yù)料的狀況今野,導(dǎo)致了它無法完成對請求的處理。一般來說罐农,這個問題都會在服務(wù)器端的源代碼出現(xiàn)錯誤時(shí)出現(xiàn)条霜。

Get和post請求方法有什么區(qū)別?

根據(jù)HTTP標(biāo)準(zhǔn)涵亏,HTTP請求可以使用多種請求方法宰睡,到HTTP1.1包括八種方法:

GET, POST,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT。

4.解決方案

區(qū)別:

1.GET提交的數(shù)據(jù)會放在URL之后气筋,以?分割URL和傳輸數(shù)據(jù)廊营,參數(shù)之間以&相連旅赢,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的數(shù)據(jù)放在HTTP包的Body中.

2.GET提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對URL的長度有限制),而POST方法提交的數(shù)據(jù)沒有限制。

3.GET方式需要使用Request.QueryString來取得變量的值索守,而POST方式通過Request.Form來獲取變量的值夕吻。

4.GET方式提交數(shù)據(jù)坤次,會帶來安全問題驳规,比如一個登錄頁面,通過GET方式提交數(shù)據(jù)時(shí)艾君,用戶名和密碼將出現(xiàn)在URL上采够,如果頁面可以被緩存或者其他人可以訪問這臺機(jī)器,就可以從歷史記錄獲得該用戶的賬號和密碼冰垄。

5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

http協(xié)議適用場景

缺點(diǎn):

1.傳輸速度慢蹬癌,數(shù)據(jù)包大。

2.如實(shí)現(xiàn)實(shí)時(shí)交互,服務(wù)器性能壓力大

3.數(shù)據(jù)傳輸安全性差

1.公司oa系統(tǒng):Office Automation System 逝薪,意為辦公自動化系統(tǒng)隅要。使用局域網(wǎng),較為安全董济。

2.各種互聯(lián)網(wǎng)服務(wù)步清。

7.參考文獻(xiàn)

https://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

http://blog.csdn.net/kfanning/article/details/6062118/

更多討論:

長連接和短連接?

HTTP1.1規(guī)定了默認(rèn)保持長連接(HTTP persistent connection 虏肾,也有翻譯為持久連接)廓啊,數(shù)據(jù)傳輸完成了保持TCP連接不斷開(不發(fā)RST包、不四次握手)封豪,等待在同域名下繼續(xù)用這個通道傳輸數(shù)據(jù)谴轮;相反的就是短連接。

http協(xié)議和tcp協(xié)議的區(qū)別是什么吹埠?

術(shù)語TCP/IP代表傳輸控制協(xié)議/網(wǎng)際協(xié)議第步,指的是一系列協(xié)議≡道牛“IP”代表網(wǎng)際協(xié)議雌续,TCP和UDP使用該協(xié)議從一個網(wǎng)絡(luò)傳送數(shù)據(jù)包到另一個網(wǎng)絡(luò)。把IP想像成一種高速公路胯杭,它允許其它協(xié)議在上面行駛并找到到其它電腦的出口。TCP和UDP是高速公路上的“卡車”受啥,它們攜帶的貨物就是像HTTP做个,文件傳輸協(xié)議FTP這樣的協(xié)議等。

Http協(xié)議中Http1.0與1.1區(qū)別滚局?

http://blog.csdn.net/elifefly/article/details/3964766/

PPT地址:

https://ptteng.github.io/PPT/PPT-java/JAVA-task2-http.xml.html#/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末居暖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子藤肢,更是在濱河造成了極大的恐慌太闺,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘁圈,死亡現(xiàn)場離奇詭異省骂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)最住,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門钞澳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涨缚,你說我怎么就攤上這事轧粟。” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵兰吟,是天一觀的道長通惫。 經(jīng)常有香客問我,道長混蔼,這世上最難降的妖魔是什么履腋? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拄丰,結(jié)果婚禮上府树,老公的妹妹穿的比我還像新娘。我一直安慰自己料按,他們只是感情好奄侠,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著载矿,像睡著了一般垄潮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上闷盔,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天弯洗,我揣著相機(jī)與錄音,去河邊找鬼逢勾。 笑死牡整,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溺拱。 我是一名探鬼主播逃贝,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼迫摔!你這毒婦竟也來了沐扳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤句占,失蹤者是張志新(化名)和其女友劉穎沪摄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纱烘,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杨拐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凹炸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戏阅。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖啤它,靈堂內(nèi)的尸體忽然破棺而出奕筐,到底是詐尸還是另有隱情舱痘,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布离赫,位于F島的核電站芭逝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏渊胸。R本人自食惡果不足惜旬盯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翎猛。 院中可真熱鬧胖翰,春花似錦、人聲如沸切厘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疫稿。三九已至培他,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遗座,已是汗流浹背舀凛。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留途蒋,地道東北人猛遍。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像号坡,于是被迫代替她去往敵國和親螃壤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

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

  • 一筋帖、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,330評論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,208評論 3 82
  • HTTP概述 超文本傳輸協(xié)議(HTTP冤馏,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最...
    曹淵說創(chuàng)業(yè)閱讀 3,840評論 2 61
  • (原話)談?wù)剬TTP協(xié)議的理解:超文本傳輸協(xié)議逮光,應(yīng)用于OSI網(wǎng)絡(luò)模型中的應(yīng)用層代箭,是用于服務(wù)器傳輸超文本到本地瀏覽...
    24_yu閱讀 875評論 0 1
  • 前言:最近發(fā)現(xiàn)自己在網(wǎng)絡(luò)相關(guān)這一塊基礎(chǔ)很是欠缺,所以準(zhǔn)備花時(shí)間了解一下涕刚,本文主要是講http協(xié)議的一些基礎(chǔ)嗡综,和一些...
    justCode_閱讀 2,092評論 0 23