HTTP簡介
- HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議夹孔。
- HTTP是一個(gè)基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML 文件, 圖片文件, 查詢結(jié)果等)铭腕。
- HTTP是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議
主要特點(diǎn)
- 簡單快速:客戶向服務(wù)器請求服務(wù)時(shí)涕侈,只需傳送請求方法和路徑考赛。請求方法常用的有GET富腊、HEAD芋哭、POST袁辈。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同挨措。由于HTTP協(xié)議簡單汗洒,使得HTTP服務(wù)器的程序規(guī)模小议纯,因而通信速度很快。
- 靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象溢谤。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記瞻凤。
- 無連接:無連接的含義是限制每次連接只處理一個(gè)請求。服務(wù)器處理完客戶的請求世杀,并收到客戶的應(yīng)答后阀参,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間玫坛。
- 無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議结笨。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息湿镀,則它必須重傳炕吸,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面勉痴,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快赫模。
- 支持B/S及C/S模式。
主要概念
URL
- 協(xié)議部分:該URL的協(xié)議部分為“http:”蒸矛,這代表網(wǎng)頁使用的是HTTP協(xié)議瀑罗。在Internet中可以使用多種協(xié)議,如HTTP雏掠,F(xiàn)TP等等本例中使用的是HTTP協(xié)議斩祭。在"HTTP"后面的“//”為分隔符。
- 域名部分:該URL的域名部分為“www.aspxfans.com”乡话。一個(gè)URL中摧玫,也可以使用IP地址作為域名使用。
- 端口部分:跟在域名后面的是端口绑青,域名和端口之間使用“:”作為分隔符诬像。端口不是一個(gè)URL必須的部分屋群,如果省略端口部分,將采用默認(rèn)端口坏挠。
- 虛擬目錄部分:從域名后的第一個(gè)“/”開始到最后一個(gè)“/”為止芍躏,是虛擬目錄部分。虛擬目錄也不是一個(gè)URL必須的部分降狠。本例中的虛擬目錄是“/news/”对竣。
- 文件名部分:從域名后的最后一個(gè)“/”開始到“?”為止喊熟,是文件名部分柏肪,如果沒有“?”,則是從域名后的最后一個(gè)“/”開始到“#”為止,是文件部分芥牌,如果沒有“?”和“#”聂使,那么從域名后的最后一個(gè)“/”開始到結(jié)束壁拉,都是文件名部分。本例中的文件名是“index.asp”柏靶。文件名部分也不是一個(gè)URL必須的部分弃理,如果省略該部分,則使用默認(rèn)的文件名屎蜓。
- 錨部分:從“#”開始到最后痘昌,都是錨部分。本例中的錨部分是“name”炬转。錨部分也不是一個(gè)URL必須的部分辆苔。
- 參數(shù)部分:從“?”開始到“#”為止之間的部分為參數(shù)部分扼劈,又稱搜索部分驻啤、查詢部分。本例中的參數(shù)部分為“boardID=5&ID=24618&page=1”荐吵。參數(shù)可以允許有多個(gè)參數(shù)骑冗,參數(shù)與參數(shù)之間用“&”作為分隔符。
HTTP之請求消息Request
客戶端發(fā)送一個(gè)HTTP請求到服務(wù)器的請求消息包括以下格式:
請求行(request line)先煎、請求頭部(header)贼涩、空行和請求數(shù)據(jù)四個(gè)部分組成。
HTTP之響應(yīng)消息Response
一般情況下薯蝎,服務(wù)器接收并處理客戶端發(fā)過來的請求后會返回一個(gè)HTTP的響應(yīng)消息遥倦。
HTTP響應(yīng)也由四個(gè)部分組成,分別是:狀態(tài)行良风、消息報(bào)頭谊迄、空行和響應(yīng)正文闷供。
HTTP之狀態(tài)碼
常見狀態(tài)碼:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯(cuò)誤,不能被服務(wù)器所理解
401 Unauthorized //請求未經(jīng)授權(quán)统诺,這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用
403 Forbidden //服務(wù)器收到請求歪脏,但是拒絕提供服務(wù)
404 Not Found //請求資源不存在,eg:輸入了錯(cuò)誤的URL
500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
503 Server Unavailable //服務(wù)器當(dāng)前不能處理客戶端的請求粮呢,一段時(shí)間后可能恢復(fù)正常
HTTP請求方法
根據(jù)HTTP標(biāo)準(zhǔn)婿失,HTTP請求可以使用多種請求方法。
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法啄寡。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法豪硅。
GET 請求指定的頁面信息,并返回實(shí)體主體挺物。
HEAD 類似于get請求懒浮,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報(bào)頭
POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)识藤。數(shù)據(jù)被包含在請求體中砚著。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。
PUT 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容痴昧。
DELETE 請求服務(wù)器刪除指定的頁面稽穆。
CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。
OPTIONS 允許客戶端查看服務(wù)器的性能赶撰。
TRACE 回顯服務(wù)器收到的請求舌镶,主要用于測試或診斷。