HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫(xiě),是用于從萬(wàn)維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議塞赂。蜘醋。
一区端、萬(wàn)維網(wǎng)
- 萬(wàn)維網(wǎng) WWW (World Wide Web)并非某種特殊的計(jì)算機(jī)網(wǎng)絡(luò)颁湖。
- 萬(wàn)維網(wǎng)是一個(gè)大規(guī)模的、聯(lián)機(jī)式的信息儲(chǔ)藏所呆万。
- 萬(wàn)維網(wǎng)用鏈接的方法能非常方便地從因特網(wǎng)上的一個(gè)站點(diǎn)訪問(wèn)另一個(gè)站點(diǎn)甜橱,從而主動(dòng)地按需獲取豐富的信息躯泰。
- 這種訪問(wèn)方式稱為“鏈接”。
超文本與超媒體
- 萬(wàn)維網(wǎng)是分布式超媒體(hypermedia)系統(tǒng)刹衫,它是超文本(hypertext)系統(tǒng)的擴(kuò)充。
- 一個(gè)超文本由多個(gè)信息源鏈接成。利用一個(gè)鏈接可使用戶找到另一個(gè)文檔。這些文檔可以位于世界上任何一個(gè)接在因特網(wǎng)上的超文本系統(tǒng)中叽躯。超文本是萬(wàn)維網(wǎng)的基礎(chǔ)。
- 超媒體與超文本的區(qū)別是文檔內(nèi)容不同。超文本文檔僅包含文本信息袁辈,而超媒體文檔還包含其他表示方式的信息,如圖形、圖像卿泽、聲音、動(dòng)畫(huà),甚至活動(dòng)視頻圖像丐吓。
萬(wàn)維網(wǎng)的工作方式
- 萬(wàn)維網(wǎng)以客戶服務(wù)器方式工作汹碱。
- 瀏覽器就是在用戶計(jì)算機(jī)上的萬(wàn)維網(wǎng)客戶程序稚新。萬(wàn)維網(wǎng)文檔所駐留的計(jì)算機(jī)則運(yùn)行服務(wù)器程序,因此這個(gè)計(jì)算機(jī)也稱為萬(wàn)維網(wǎng)服務(wù)器。
- 客戶程序向服務(wù)器程序發(fā)出請(qǐng)求,服務(wù)器程序向客戶程序送回客戶所要的萬(wàn)維網(wǎng)文檔。
- 在一個(gè)客戶程序主窗口上顯示出的萬(wàn)維網(wǎng)文檔稱為頁(yè)面(page)苍凛。
萬(wàn)維網(wǎng)必須解決的問(wèn)題
(1) 怎樣標(biāo)志分布在整個(gè)因特網(wǎng)上的萬(wàn)維網(wǎng)文檔想罕?
- 使用統(tǒng)一資源定位符 URL (Uniform Resource Locator)來(lái)標(biāo)志萬(wàn)維網(wǎng)上的各種文檔。
- 使每一個(gè)文檔在整個(gè)因特網(wǎng)的范圍內(nèi)具有唯一的標(biāo)識(shí)符 URL。
(2) 用何協(xié)議實(shí)現(xiàn)萬(wàn)維網(wǎng)上各種超鏈的鏈接凄杯?
- 在萬(wàn)維網(wǎng)客戶程序與萬(wàn)維網(wǎng)服務(wù)器程序之間進(jìn)行交互所使用的協(xié)議,是超文本傳送協(xié)議 HTTP (HyperText Transfer Protocol)酌摇。
- HTTP 是一個(gè)應(yīng)用層協(xié)議仍稀,它使用 TCP 連接進(jìn)行可靠的傳送千康。
(3) 怎樣使各種萬(wàn)維網(wǎng)文檔都能在因特網(wǎng)上的各種計(jì)算機(jī)上顯示出來(lái)值桩,同時(shí)使用戶清楚地知道在什么地方存在著超鏈咳秉?
- 超文本標(biāo)記語(yǔ)言 HTML (HyperText Markup Language)使得萬(wàn)維網(wǎng)頁(yè)面的設(shè)計(jì)者可以很方便地用一個(gè)超鏈從本頁(yè)面的某處鏈接到因特網(wǎng)上的任何一個(gè)萬(wàn)維網(wǎng)頁(yè)面,并且能夠在自己的計(jì)算機(jī)屏幕上將這些頁(yè)面顯示出來(lái)蝌以。
(4) 怎樣使用戶能夠很方便地找到所需的信息霎奢?
- 為了在萬(wàn)維網(wǎng)上方便地查找信息,用戶可使用各種的搜索工具(即搜索引擎)饼灿。
二幕侠、統(tǒng)一資源定位符 URL
- 統(tǒng)一資源定位符 URL 是對(duì)可以從因特網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示。
- URL 給資源的位置提供一種抽象的識(shí)別方法碍彭,并用這種方法給資源定位晤硕。
- 只要能夠?qū)Y源定位悼潭,系統(tǒng)就可以對(duì)資源進(jìn)行各種操作,如存取舞箍、更新舰褪、替換和查找其屬性。
- URL 相當(dāng)于一個(gè)文件名在網(wǎng)絡(luò)范圍的擴(kuò)展疏橄。因此 URL 是與因特網(wǎng)相連的機(jī)器上的任何可訪問(wèn)對(duì)象的一個(gè)指針占拍。
URL 的一般形式
由以冒號(hào)隔開(kāi)的兩大部分組成,并且在 URL 中的字符對(duì)大寫(xiě)或小寫(xiě)沒(méi)有要求捎迫。
URL 的一般形式是:
<協(xié)議>://<主機(jī)>:<端口>/<路徑>
使用 HTTP 的 URL
HTTP 的操作過(guò)程
- 為了使超文本的鏈接能夠高效率地完成晃酒,需要用 HTTP 協(xié)議來(lái)傳送一切必須的信息。
- 從層次的角度看窄绒,HTTP 是面向事務(wù)的(transaction-oriented)應(yīng)用層協(xié)議贝次,它是萬(wàn)維網(wǎng)上能夠可靠地交換文件(包括文本、聲音彰导、圖像等各種多媒體文件)的重要基礎(chǔ)蛔翅。
用戶點(diǎn)擊鼠標(biāo)后所發(fā)生的事件
(1) 瀏覽器分析超鏈指向頁(yè)面的 URL。
(2) 瀏覽器向 DNS 請(qǐng)求解析 IP 地址位谋。
(3) 域名系統(tǒng) DNS 解析出服務(wù)器的 IP 地址山析。
(4) 瀏覽器與服務(wù)器建立 TCP 連接
(5) 瀏覽器發(fā)命令
(6) 服務(wù)器給出響應(yīng),把文件發(fā)給瀏覽器掏父。
(7) TCP 連接釋放笋轨。
(8) 瀏覽器顯示文件中的所有文本。
HTTP 的主要特點(diǎn) - HTTP是無(wú)連接:無(wú)連接的含義是限制每次連接只處理一個(gè)請(qǐng)求损同。服務(wù)器處理完客戶的請(qǐng)求翩腐,并收到客戶的應(yīng)答后,即斷開(kāi)連接膏燃。采用這種方式可以節(jié)省傳輸時(shí)間茂卦。
- HTTP是媒體獨(dú)立的:這意味著,只要客戶端和服務(wù)器知道如何處理的數(shù)據(jù)內(nèi)容组哩,任何類型的數(shù)據(jù)都可以通過(guò)HTTP發(fā)送等龙。客戶端以及服務(wù)器指定使用適合的MIME-type內(nèi)容類型伶贰。
- HTTP是無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)協(xié)議蛛砰。無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒(méi)有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息黍衙,則它必須重傳泥畅,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面琅翻,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快位仁。
HTTP 的報(bào)文結(jié)構(gòu)
HTTP 有兩類報(bào)文:
- 請(qǐng)求報(bào)文——從客戶向服務(wù)器發(fā)送請(qǐng)求報(bào)文柑贞。
- 響應(yīng)報(bào)文——從服務(wù)器到客戶的回答。
- 由于 HTTP 是面向正文的(text-oriented)聂抢,因此在報(bào)文中的每一個(gè)字段都是一些 ASCII 碼串钧嘶,因而每個(gè)字段的長(zhǎng)度都是不確定的。
1.請(qǐng)求報(bào)文
報(bào)文由三個(gè)部分組成琳疏,即開(kāi)始行有决、首部行和實(shí)體主體。
在請(qǐng)求報(bào)文中空盼,開(kāi)始行就是請(qǐng)求行书幕。
“方法”是面向?qū)ο蠹夹g(shù)中使用的專門名詞。所謂“方法”就是對(duì)所請(qǐng)求的對(duì)象進(jìn)行的操作我注,因此這些方法實(shí)際上也就是一些命令按咒。因此迟隅,請(qǐng)求報(bào)文的類型是由它所采用的方法決定的但骨。
“URL”是所請(qǐng)求的資源的 URL
“版本”是 HTTP 的版本。
響應(yīng)報(bào)文的開(kāi)始行是狀態(tài)行智袭。
狀態(tài)行包括三項(xiàng)內(nèi)容奔缠,即 HTTP 的版本,狀態(tài)碼吼野,以及解釋狀態(tài)碼的簡(jiǎn)單短語(yǔ)校哎。
方法(操作) 意義
OPTION 請(qǐng)求一些選項(xiàng)的信息
GET 請(qǐng)求讀取由 URL所標(biāo)志的信息
HEAD 請(qǐng)求讀取由 URL所標(biāo)志的信息的首部
POST 給服務(wù)器添加信息(例如,注釋)
PUT 在指明的 URL下存儲(chǔ)一個(gè)文檔
DELETE 刪除指明的 URL所標(biāo)志的資源
TRACE 用來(lái)進(jìn)行環(huán)回測(cè)試的請(qǐng)求報(bào)文
CONNECT 用于代理服務(wù)器
響應(yīng)報(bào)文
響應(yīng)報(bào)文的開(kāi)始行是狀態(tài)行瞳步。
狀態(tài)行包括三項(xiàng)內(nèi)容闷哆,即 HTTP 的版本,狀態(tài)碼单起,以及解釋狀態(tài)碼的簡(jiǎn)單短語(yǔ)抱怔。
狀態(tài)碼
1xx 表示通知信息的,如請(qǐng)求收到了或正在進(jìn)行處理嘀倒。
2xx 表示成功屈留,如接受或知道了。
3xx 表示重定向测蘑,表示要完成請(qǐng)求還必須采取進(jìn)一步的行動(dòng)灌危。
4xx 表示客戶的差錯(cuò),如請(qǐng)求中有錯(cuò)誤的語(yǔ)法或不能完成碳胳。
5xx 表示服務(wù)器的差錯(cuò)勇蝙,如服務(wù)器失效無(wú)法完成請(qǐng)求。
HTTP content-type
Content-Type挨约,內(nèi)容類型味混,一般是指網(wǎng)頁(yè)中存在的Content-Type藕帜,用于定義網(wǎng)絡(luò)文件的類型和網(wǎng)頁(yè)的編碼,決定瀏覽器將以什么形式惜傲、什么編碼讀取這個(gè)文件洽故,這就是經(jīng)常看到一些Asp網(wǎng)頁(yè)點(diǎn)擊的結(jié)果卻是下載到的一個(gè)文件或一張圖片的原因盗誊。