7.1 協(xié)議簡(jiǎn)介
HTTP(超文本傳輸協(xié)議HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和Internet工作小組(Internet Engineering Task Force)合作的結(jié)果樊诺,二者發(fā)布了一系列的RFC眠屎,其中最著名的就是RFC 2616,其定義了HTTP協(xié)議的我們今天普遍使用的一個(gè)版本——HTTP 1.1查描。
HTTP是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)突委。客戶端是終端用戶冬三,服務(wù)器端是網(wǎng)站匀油。通過(guò)使用WEB瀏覽器、APP勾笆、網(wǎng)絡(luò)爬蟲(chóng)或者其它的工具敌蚜,客戶端發(fā)起一個(gè)到服務(wù)器上指定端口(默認(rèn)端口為80)的HTTP請(qǐng)求。
客戶端也叫用戶代理(User Agent)窝爪,應(yīng)答服務(wù)器也叫源服務(wù)器(Origin Server)弛车。在用戶代理和源服務(wù)器中間可能存在多個(gè)中間層,比如代理蒲每,網(wǎng)關(guān)纷跛,或者隧道(Tunnels)。
通常邀杏,由HTTP客戶端發(fā)起一個(gè)請(qǐng)求贫奠,建立一個(gè)到服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接唬血。HTTP服務(wù)器則在那個(gè)端口監(jiān)聽(tīng)客戶端發(fā)送過(guò)來(lái)的請(qǐng)求。一旦收到請(qǐng)求唤崭,服務(wù)器(向客戶端)發(fā)回一個(gè)狀態(tài)行拷恨,比如"HTTP/1.1 200 OK",和(響應(yīng)的)消息谢肾,消息的消息體可能是請(qǐng)求的文件腕侄、錯(cuò)誤消息、或者其它一些信息芦疏。
HTTP使用TCP而不是UDP的原因在于(打開(kāi)一個(gè))一個(gè)網(wǎng)頁(yè)必須傳送很多數(shù)據(jù)冕杠,而TCP協(xié)議提供傳輸控制,按順序組織數(shù)據(jù)眯分,和錯(cuò)誤糾正拌汇。
通過(guò)HTTP或者HTTPS協(xié)議請(qǐng)求的資源由 URI(統(tǒng)一資源標(biāo)示符Uniform Resource Identifiers)來(lái)標(biāo)識(shí)。
在瀏覽器的地址欄里輸入的網(wǎng)站地址叫做URL (Uniform Resource Locator弊决,統(tǒng)一資源定位符)噪舀,如http://www.******.com /china/index.htm。它的含義如下:
1. http://:代表超文本轉(zhuǎn)移協(xié)議飘诗,通知****.com服務(wù)器顯示W(wǎng)eb頁(yè)与倡,通常不用輸入。
2. www:代表一個(gè)Web(萬(wàn)維網(wǎng))服務(wù)器昆稿。
3. ****.com/:這是裝有網(wǎng)頁(yè)的服務(wù)器的域名纺座,或站點(diǎn)服務(wù)器的名稱(chēng)。
- China/:為該服務(wù)器上的子目錄溉潭,就好像我們的文件夾净响。
- Index.htm:index.htm是文件夾中的一個(gè)HTML文件(網(wǎng)頁(yè))。