1)http過(guò)程
客戶端向服務(wù)器發(fā)送http請(qǐng)求煌恢,服務(wù)器會(huì)在http響應(yīng)中回送所請(qǐng)求的數(shù)據(jù)。
2)MIME類型
web服務(wù)器會(huì)為http相應(yīng)數(shù)據(jù)加MIME類型震庭,瀏覽器會(huì)根據(jù)相應(yīng)數(shù)據(jù)中的MIME類型來(lái)決定如何處理該數(shù)據(jù)瑰抵。
MIME類型包括content-type和content-length,content-type由一個(gè)主要的對(duì)象類型和一個(gè)特定的子類型組成器联,中間由/分割二汛,MIME類型有數(shù)百個(gè),例如:
HTML格式; text/html
jpeg格式:image/jpeg
3)URI(標(biāo)志地址或名稱)
每個(gè)web服務(wù)器資源都要一個(gè)名字拨拓,這樣客戶端就可以根據(jù)需求來(lái)找自己需要的web服務(wù)器了肴颊,服務(wù)器資源名被稱為統(tǒng)一資源標(biāo)識(shí)符(URI),URI就像每家每戶的居住地址一樣渣磷,是一種獨(dú)一無(wú)二的定位婿着。
URI有兩種形式:URL和URN
URL:統(tǒng)一資源定位符(是一個(gè)地址),是資源標(biāo)識(shí)符最常見(jiàn)的形式,URL描述了一臺(tái)特定服務(wù)器上某資源的特定位置竟宋,URL就像快遞的地址一樣提完,精確,固定袜硫。
URN:URI的第二種形式就是URN(統(tǒng)一資源名:相當(dāng)于一個(gè)人的身份證氯葬,獨(dú)一無(wú)二),通過(guò)URN婉陷,還可以用同一個(gè)名字通過(guò)多種網(wǎng)絡(luò)訪問(wèn)協(xié)議來(lái)訪問(wèn)資源帚称。使用URN可以在不知道其網(wǎng)絡(luò)位置和訪問(wèn)方式的情況下討論該資源。
URI可以被分為URL秽澳、URN或兩者的組合闯睹。
4)請(qǐng)求方法
每次http請(qǐng)求報(bào)文都會(huì)包含一個(gè)請(qǐng)求方法,這個(gè)方法會(huì)告訴服務(wù)器要執(zhí)行什么動(dòng)作担神。
常見(jiàn)的五種http方法
GET:從服務(wù)器向客戶端發(fā)送命名資源
PUT:將來(lái)自客戶端的數(shù)據(jù)存儲(chǔ)到一個(gè)命名的服務(wù)器資源中
DELETE:從服務(wù)器刪除指定命名資源
POST:將客戶端數(shù)據(jù)發(fā)送到一個(gè)服務(wù)器網(wǎng)關(guān)應(yīng)用程序
HEAD:僅發(fā)送命名資源響應(yīng)中的HTTP首部
5)狀態(tài)碼
五大類:
1xx:指示信息--表示請(qǐng)求已接收楼吃,繼續(xù)處理。
2xx:成功--表示請(qǐng)求已被成功接收妄讯、理解孩锡、接受。
3xx:重定向(請(qǐng)求資源已被移走)--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作亥贸。
4xx:客戶端錯(cuò)誤--請(qǐng)求有語(yǔ)法錯(cuò)誤或請(qǐng)求無(wú)法實(shí)現(xiàn)躬窜。(由于瀏覽器發(fā)送的東西服務(wù)器無(wú)法處理)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求。(瀏覽器發(fā)送有效請(qǐng)求炕置,但服務(wù)器自身出錯(cuò))
常見(jiàn)的狀態(tài)碼:
200 OK:客戶端請(qǐng)求成功荣挨。
400 Bad Request:客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤,不能被服務(wù)器所理解朴摊。
401 Unauthorized:請(qǐng)求未經(jīng)授權(quán)默垄,這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用。
403 Forbidden:服務(wù)器收到請(qǐng)求甚纲,但是拒絕提供服務(wù)口锭。
404 Not Found:請(qǐng)求資源不存在,舉個(gè)例子:輸入了錯(cuò)誤的URL贩疙。
500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤讹弯。
503 Server Unavailable:服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常这溅,舉個(gè)例子:HTTP/1.1 200 OK(CRLF)。
6)一次常規(guī)的http請(qǐng)求構(gòu)成(粗糙的)
第一步:瀏覽器從URL中解析出服務(wù)器的主機(jī)名(域名)
第二步:瀏覽器將服務(wù)器的主機(jī)名轉(zhuǎn)換成服務(wù)器的IP地址
第三步:瀏覽器將端口號(hào)(如果有的話)從URL中解析出來(lái)
第四步:瀏覽器建立一條與Web服務(wù)器的TCP連接
第五步:瀏覽器向服務(wù)器發(fā)送一條HTTP請(qǐng)求報(bào)文
第六步:服務(wù)器向?yàn)g覽器回送一條HTTP相應(yīng)報(bào)文
第七步:關(guān)閉連接棒仍,瀏覽器根據(jù)MIME類型進(jìn)行相應(yīng)的渲染動(dòng)作
7)url非安全字符的轉(zhuǎn)義
8)http報(bào)文
無(wú)論是客戶端發(fā)給服務(wù)器的請(qǐng)求報(bào)文悲靴,還是服務(wù)器返回給客戶端的響應(yīng)報(bào)文,都由三部分組成:
1:對(duì)報(bào)文描述的起始行
所有的http報(bào)文都以一個(gè)起始行開(kāi)始莫其,請(qǐng)求報(bào)文的起始行說(shuō)明客戶端要服務(wù)器做什么癞尚,響應(yīng)報(bào)文的起始行反饋了結(jié)果
2:包含屬性的首部
向請(qǐng)求或者響應(yīng)?報(bào)文?中添加了一些附加信息
3:以及可選的耸三、包含數(shù)據(jù)的主體部分
http要傳輸?shù)膬?nèi)容,http報(bào)文可以承載很多類型的數(shù)字?jǐn)?shù)據(jù):圖片浇揩、視頻仪壮、HTML文檔、軟件應(yīng)用程序胳徽、信用卡事物积锅、電子郵件等。