大學(xué)的時(shí)候不認(rèn)真學(xué),現(xiàn)在重溫下
1.請(qǐng)求頭中的媒體類(lèi)型:Content-type:text/html
2.URI:統(tǒng)一資源標(biāo)識(shí)符,每個(gè)web服務(wù)器的每個(gè)資源都有自己的URI。
比如某個(gè)網(wǎng)站的的某個(gè)gif圖的URI:http://www.baidu.com/httpsreview/test.gif
URI 有兩種形式:URL 和 URN;
3.URL:統(tǒng)一資源定位符
(1)大部分的URL都遵循一種標(biāo)準(zhǔn)格式,包含三個(gè)部分:
(2)URL第一部分通常稱(chēng)為方案(scheme),說(shuō)明了訪問(wèn)資源所使用的協(xié)議類(lèi)型,這部分通常就是http協(xié)議(http://)
(3)第二部分就是因特網(wǎng)的網(wǎng)址(比如:www.baidu.com)
(4)其余部分就是指定了web服務(wù)器上的某個(gè)資源(比如:/test/test.gif)
現(xiàn)在,幾乎所有的URI都是URL;
4.URN:統(tǒng)一資源名
(1)URN是特定內(nèi)容的唯一名稱(chēng),與資源的位置無(wú)關(guān)。即同一個(gè)名字可以通過(guò)多種網(wǎng)絡(luò)來(lái)訪問(wèn)到。
5.事務(wù):
一個(gè)http事務(wù)是由一條從客戶端發(fā)往服務(wù)器的請(qǐng)求命令和一條服務(wù)端發(fā)往客戶端的請(qǐng)求結(jié)果組成的。
這種通信是通過(guò)名為HTTP報(bào)文(HTTP Message)的格式化數(shù)據(jù)塊進(jìn)行的。
6.方法:
每個(gè)HTTP請(qǐng)求報(bào)文都會(huì)包含一個(gè)方法,來(lái)告訴服務(wù)器執(zhí)行什么動(dòng)作。常見(jiàn)的動(dòng)作有如下5種:
(1)GET(2)POST(3)DELETE(4)PUT(5)HEAD
7.狀態(tài)碼:
每個(gè)http響應(yīng)報(bào)文都會(huì)攜帶一個(gè)狀態(tài)碼,狀態(tài)碼由一個(gè)三位數(shù)組成,告知客戶端是否請(qǐng)求成功,或是否需要采取其他動(dòng)作。
8.Http報(bào)文分為請(qǐng)求報(bào)文(request message)和響應(yīng)報(bào)文(response message)兩種。
HTTP報(bào)文包含了三個(gè)部分:
(1)起始行:在請(qǐng)求報(bào)文中就是說(shuō)明要做些什么。在響應(yīng)報(bào)文中就是說(shuō)明出現(xiàn)了什么情況。
(2)首部字段:key:value組成
(3)主題:可選項(xiàng),返回的結(jié)果啊,push的數(shù)據(jù)啊。
9.HTTP是如何從一個(gè)地方搬到另一個(gè)地方的,即通過(guò)(Transmission Control Protocol) TCP協(xié)議
10.TCP/IP:
Http是個(gè)應(yīng)用層協(xié)議,它無(wú)需操心通信的細(xì)節(jié),而是把這些都交給了可靠的TCP/IP協(xié)議。
(1)TCP提供了:
(1.1)無(wú)差錯(cuò)的數(shù)據(jù)傳輸(1.2)按序傳輸(1.3)未分段的數(shù)據(jù)流(可以在任意時(shí)刻任意尺寸將數(shù)據(jù)發(fā)送出去)
(2)HTTP網(wǎng)絡(luò)協(xié)議的五層:
? ? ? ? HTTP -> 應(yīng)用層
? ? ? ? TCP ? -> 傳輸層
? ? ? ? IP ? ? ? -> 網(wǎng)絡(luò)層
? ? ? ? 網(wǎng)絡(luò)特有的鏈路接口 ?-> 數(shù)據(jù)鏈層
? ? ? ? 物理網(wǎng)絡(luò)硬件 ?-> 物理層
11.連接:
在HTTP客戶端向服務(wù)器發(fā)送報(bào)文之前,需要用網(wǎng)際協(xié)議(IP)地址和端口號(hào)在客戶端和服務(wù)器之間建立一條TCP/IP連接。
在HTTP中你需要知道服務(wù)器的IP地址,以及服務(wù)器上運(yùn)行的特定程序的端口號(hào)。但是HTTP是怎么知道這些的呢?
HTTP通過(guò)URL來(lái)知道的,URL中存儲(chǔ)了IP地址和端口號(hào)。(URL中沒(méi)有注明端口號(hào)的默認(rèn)是80)
12.Telnet:
% telnet10.99.215.27 8888
GET /index.php HTTP/1.1 Host:10.99.215.27
http?response…..(you can test ??)
13.代理:
代理位于客戶端和服務(wù)器之間,接受客戶端所有的請(qǐng)求,(可能會(huì)修改)然后轉(zhuǎn)發(fā)給服務(wù)器。
14.緩存:
Web緩存(Web cache)或者代理緩存(proxy cache)是一種特殊的HTTP代理服務(wù)器。可以將經(jīng)過(guò)代理傳送的常用文件復(fù)制保存,下一個(gè)請(qǐng)求同一文檔的客戶端就可以享受緩存的私有副本所提供的服務(wù)了。
客戶端從附近的緩存下載文檔比從遠(yuǎn)程的web服務(wù)器下載要快得多。
15.網(wǎng)關(guān):
網(wǎng)關(guān)(gateway)是一種特殊的服務(wù)器。最為其他服務(wù)器的中間體使用,通常將HTTP協(xié)議轉(zhuǎn)換成其他的協(xié)議??蛻舳丝赡懿⒉恢雷约菏窃诤鸵粋€(gè)網(wǎng)關(guān)通信。
客戶端 (<- http->) ?HTTP/FTP網(wǎng)關(guān) (<- ftp ->) FTP服務(wù)器
16.隧道:
隧道(tunes)是建立起來(lái)之后,就會(huì)在多個(gè)連接之間對(duì)原始數(shù)據(jù)進(jìn)行盲目轉(zhuǎn)發(fā)的HTTP應(yīng)用程序。
HTTP隧道通常用來(lái)在一條或者多條HTTP連接上轉(zhuǎn)發(fā)非HTTP數(shù)據(jù),并且不會(huì)窺探數(shù)據(jù)。
HTTP隧道的一個(gè)常見(jiàn)用途是通過(guò)HTTP連接承載加密的安全套接字(ssl)流量,這樣ssl流量就能通過(guò)只允許web流量通過(guò)的防火墻了。
17.Agent代理:
代表用戶發(fā)起HTTP請(qǐng)求的客戶端程序。就常見(jiàn)的就是web瀏覽器,搜索引擎。