客戶(hù)程序向服務(wù)器發(fā)送的請求可以有不同的類(lèi)型,這樣服務(wù)器可以根據不同的請求類(lèi)型進(jìn)行不同的處理。在HTTP1.0中,定義了三種最基本的請求類(lèi) 型,GET、POST和HEAD,客戶(hù)程序用大寫(xiě)指令將請求發(fā)送給服務(wù)器,后面跟隨具體的數據。
其中,HEAD請求在客戶(hù)程序和服務(wù)器之間進(jìn)行交流,而不會(huì )返回具體的文檔。當使用GET和POST方法時(shí),服務(wù)器最后都將結果文檔返回給客戶(hù)程序,瀏覽器將 刷新顯示。而HEAD請求則不同,它僅僅交流一些內部數據,這些數據不會(huì )影響瀏覽的過(guò)程。因此HEAD方法通常不單獨使用,而是和其他的請求方法一起起到 輔助作用。一些搜尋引擎使用的自動(dòng)搜索機器人使用這個(gè)方法來(lái)獲得網(wǎng)頁(yè)的標志信息,或者進(jìn)行安全認證時(shí),使用這個(gè)方法來(lái)傳遞認證信息。
除了這三種最常見(jiàn)的訪(fǎng)問(wèn)方法之外,在HTTP1.1中還定義了更多的訪(fǎng)問(wèn)方法類(lèi)型,如PUT,用于將網(wǎng)頁(yè)放置到正確位置,DELETE用于刪除相關(guān)文檔 等。這些方法并不常用,因而大部分Web服務(wù)器軟件并沒(méi)有實(shí)現他們。然而對于特定場(chǎng)合他們還是非常有用的,例如使用軟件編輯網(wǎng)頁(yè)時(shí),網(wǎng)頁(yè)編輯器可以使用這 些方法,管理不同的網(wǎng)頁(yè)。
如果服務(wù)器不支持客戶(hù)發(fā)送的請求方法,服務(wù)器將返回錯誤并立即關(guān)閉連接
HTTP請求的方法:HTTP/1.1協(xié)議中共定義了八種方法(有時(shí)也叫“動(dòng)作”),來(lái)表明Request-URL指定的資源不同的操作方式1、OPTIONS返回服務(wù)器針對特定資源所支持的HTTP請求方法,也可以利用向web服務(wù)器發(fā)送‘*’的請求來(lái)測試服務(wù)器的功能性2、HEAD向服務(wù)器索與GET請求相一致的響應,只不過(guò)響應體將不會(huì )被返回。
這一方法可以再不必傳輸整個(gè)響應內容的情況下,就可以獲取包含在響應小消息頭中的元信息。3、GET向特定的資源發(fā)出請求。
注意:GET方法不應當被用于產(chǎn)生“副作用”的操作中,例如在Web Application中,其中一個(gè)原因是GET可能會(huì )被網(wǎng)絡(luò )蜘蛛等隨意訪(fǎng)問(wèn)。Loadrunner中對應get請求函數:web_link和web_url4、POST向指定資源提交數據進(jìn)行處理請求(例如提交表單或者上傳文件)。
數據被包含在請求體中。POST請求可能會(huì )導致新的資源的建立和/或已有資源的修改。
Loadrunner中對應POST請求函數:web_submit_data,web_submit_form5、PUT向指定資源位置上傳其最新內容6、DELETE請求服務(wù)器刪除Request-URL所標識的資源7、TRACE回顯服務(wù)器收到的請求,主要用于測試或診斷8、CONNECTHTTP/1.1協(xié)議中預留給能夠將連接改為管道方式的代理服務(wù)器。注意:1)方法名稱(chēng)是區分大小寫(xiě)的,當某個(gè)請求所針對的資源不支持對應的請求方法的時(shí)候,服務(wù)器應當返回狀態(tài)碼405(Mothod Not Allowed);當服務(wù)器不認識或者不支持對應的請求方法時(shí),應返回狀態(tài)碼501(Not Implemented)。
2)HTTP服務(wù)器至少應該實(shí)現GET和HEAD/POST方法,其他方法都是可選的,此外除上述方法,特定的HTTP服務(wù)器支持擴展自定義的方法。
原理區別:
在瀏覽器中輸入網(wǎng)址訪(fǎng)問(wèn)資源都是通過(guò)GET方式;在FORM提交中,可以通過(guò)Method指定提交方式為GET或者POST,默認為GET提交。
HTTP 定義了與服務(wù)器交互的不同方法,最常用的有4種,Put(增),Delete(刪),Post(改),Get(查),即增刪改查:
1)Get,
它用于獲取信息,注意,他只是獲取、查詢(xún)數據,也就是說(shuō)它不會(huì )修改服務(wù)器上的數據,從這點(diǎn)來(lái)講,它是數據安全的,而稍后會(huì )提到的Post它是可以修改數據的,所以這也是兩者差別之一了。
2)
Post,它是可以向服務(wù)器發(fā)送修改請求,從而修改服務(wù)器的,比方說(shuō),我們要在論壇上回貼、在博客上評論,這就要用到Post了,當然它也是可以?xún)H僅獲取數據的。
3)Delete 刪除數據。可以通過(guò)Get/Post來(lái)實(shí)現。
4)Put,增加、放置數據,可以通過(guò)Get/Post來(lái)實(shí)現。
根據HTTP規范,GET用于信息獲取,而且應該是安全的和冪等的 。
1.所謂安全的意味著(zhù)該操作用于獲取信息而非修改信息。換句話(huà)說(shuō),GET請求一般不應產(chǎn)生副作用。就是說(shuō),僅僅是獲取資源信息,就像數據庫查詢(xún)一樣,不會(huì )修改,增加數據,不會(huì )影響資源的狀態(tài)。(注意:這里安全的含義僅僅是指是非修改信息。)
根據HTTP規范,POST表示可能修改變服務(wù)器上的資源的請求
繼續引用上面的例子:還是新聞以網(wǎng)站為例,讀者對新聞發(fā)表自己的評論應該通過(guò)POST實(shí)現,因為在評論提交后站點(diǎn)的資源已經(jīng)不同了,或者說(shuō)資源被修改了。
表現形式區別:
HTTP請求:在HTTP請求中,第一行必須是一個(gè)請求行(request
line),用來(lái)說(shuō)明請求類(lèi)型、要訪(fǎng)問(wèn)的資源以及使用的HTTP版本。緊接著(zhù)是一個(gè)首部(header)小節,用來(lái)說(shuō)明服務(wù)器要使用的附加信息。在首部之后是一個(gè)空行,再此之后可以添加任意的其他數據[稱(chēng)之為主體(body)]。
兩種提交方式的區別:
(1)GET提交,請求的數據會(huì )附在URL之后(就是把數據放置在HTTP協(xié)議頭中),以?分割URL和傳輸數據,多個(gè)參數用&連接。如果數據是英文字母/數字,原樣發(fā)送,如果是空格,轉換為+,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:
%E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進(jìn)制表示的ASCII。
POST提交:把提交的數據放置在是HTTP包的包體中。上文示例中紅色字體標明的就是實(shí)際的傳輸數據
因此,GET提交的數據會(huì )在地址欄中顯示出來(lái),而POST提交,地址欄不會(huì )改變
(2)傳輸數據的大小:首先聲明:HTTP協(xié)議沒(méi)有對傳輸的數據大小進(jìn)行限制,HTTP協(xié)議規范也沒(méi)有對URL長(cháng)度進(jìn)行限制。
而在實(shí)際開(kāi)發(fā)中存在的限制主要有:
GET:特定瀏覽器和服務(wù)器對URL長(cháng)度有限制,例如IE對URL長(cháng)度的限制是2083字節(2K+35)。對于其他瀏覽器,如Netscape、FireFox等,理論上沒(méi)有長(cháng)度限制,其限制取決于操作系統的支持。
因此對于GET提交時(shí),傳輸數據就會(huì )受到URL長(cháng)度的限制。
POST:由于不是通過(guò)URL傳值,理論上數據不受限。但實(shí)際各個(gè)WEB服務(wù)器會(huì )規定對post提交數據大小進(jìn)行限制,Apache、IIS6都有各自的配置。
協(xié)議基礎
HTTP(HyperText Transfer Protocol)是超文本轉移協(xié)議的縮寫(xiě),它用于傳送WWW方式的數據,關(guān)于HTTP協(xié)議的詳細內容請參考RFC2616。HTTP協(xié)議采用了請求/響應模型。客戶(hù)端向服務(wù)器發(fā)送一個(gè)請求,請求頭包含請求的方法、URL、協(xié)議版本、以及包含請求修飾符、客戶(hù)信息和內容的類(lèi)似于MIME的消息結構。服務(wù)器以一個(gè)狀態(tài)行作為響應,相應的內容包括消息協(xié)議的版本,成功或者錯誤編碼加上包含服務(wù)器信息、實(shí)體元信息以及可能的實(shí)體內容。
通常HTTP消息包括客戶(hù)機向服務(wù)器的請求消息和服務(wù)器向客戶(hù)機的響應消息。這兩種類(lèi)型的消息由一個(gè)起始行,一個(gè)或者多個(gè)頭域,一個(gè)指示頭域結束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實(shí)體頭四個(gè)部分。每個(gè)頭域由一個(gè)域名,冒號(:)和域值三部分組成。域名是大小寫(xiě)無(wú)關(guān)的,域值前可以添加任何數量的空格符,頭域可以被擴展為多行,在每行開(kāi)始處,使用至少一個(gè)空格或制表符。
1. 關(guān)于計算機網(wǎng)絡(luò )的定義。
答:廣義的觀(guān)點(diǎn):計算機技術(shù)與通信技術(shù)相結合,實(shí)現遠程信息處理或進(jìn)一步達到資源共享的系統;資源共享的觀(guān)點(diǎn):以能夠相互共享資源的方式連接起來(lái),并且各自具有獨立功能的計算機系統的集合;對用戶(hù)透明的觀(guān)點(diǎn):存在一個(gè)能為用戶(hù)自動(dòng)管理資源的網(wǎng)絡(luò )操作系統,由它來(lái)調用完成用戶(hù)任務(wù)所需要的資源,而整個(gè)網(wǎng)絡(luò )像一個(gè)大的計算機系統一樣對用戶(hù)是透明的,實(shí)際上這種觀(guān)點(diǎn)描述的是一個(gè)分布式系統。
2. 計算機網(wǎng)絡(luò )的拓樸結構。
答:計算機網(wǎng)絡(luò )采用拓樸學(xué)的研究方法,將網(wǎng)絡(luò )中的設備定義為結點(diǎn),把兩個(gè)設備之間的連接線(xiàn)路定義為鏈路。計算機網(wǎng)絡(luò )也是由一組結點(diǎn)和鏈路組成的的幾何圖形,這就是拓樸結構。
分類(lèi):按信道類(lèi)型分,分為點(diǎn)---點(diǎn)線(xiàn)路通信子網(wǎng)和廣播信道的通信子網(wǎng)。采用點(diǎn)——點(diǎn)連線(xiàn)的通信子網(wǎng)的基本結構有四類(lèi):星狀、環(huán)狀、樹(shù)狀和網(wǎng)狀;廣播信道通子網(wǎng)有總線(xiàn)狀、環(huán)狀和無(wú)線(xiàn)狀。
3. 計算機網(wǎng)絡(luò )的體系結構
答:將計算機網(wǎng)絡(luò )的層次結構模型和分層協(xié)議的集合定義為計算機網(wǎng)絡(luò )體系結構。
4.計算機網(wǎng)絡(luò )的協(xié)議三要素
答:三要素是:1,語(yǔ)法:關(guān)于諸如數據格式及信號電平等的規定;2,語(yǔ)義:關(guān)于協(xié)議動(dòng)作和差錯處理等控制信息;3,定時(shí):包含速率匹配和排序等。
5.OSI七層協(xié)議體系結構和各級的主要作用
答:七層指:由低到高,依次是物理層,數據鏈路層,網(wǎng)絡(luò )層,傳輸層,會(huì )話(huà)層,表示層和應用層。各層作用分別是:
物理層:向上與數據鏈路層相連,向下直接連接傳輸介質(zhì)。提供一些建立、維持和釋放物理連接的方法,以便能在兩個(gè)或多個(gè)數據鏈路實(shí)體間進(jìn)行數據位流的傳輸。
數據鏈路層:通過(guò)差錯控制、流量控制等,將不可靠的物理傳輸信道變成無(wú)差錯的可靠的數據鏈路。將數據組成適合正確傳輸的幀形式的數據單元,對網(wǎng)絡(luò )層屏蔽物理層的特性和差異,使高層協(xié)議不必考慮物理傳輸介質(zhì)的可靠性問(wèn)題。
網(wǎng)絡(luò )層:決定數據在通信子網(wǎng)中的傳送路徑,控制通信子網(wǎng)中的數據流量并防止擁塞等,提供建立、維護和終止網(wǎng)絡(luò )連接的手段。網(wǎng)絡(luò )層是通信子網(wǎng)的最高層。
傳輸層:為源主機到目的主機提供可靠的、有效的數據傳輸,這種傳輸與網(wǎng)絡(luò )無(wú)關(guān),傳輸層是獨立于物理網(wǎng)絡(luò )的。其上層協(xié)議不必了解實(shí)際網(wǎng)絡(luò ),就可將數據安全可靠地傳送到目的地。
會(huì )話(huà)層:建立、維護和同步進(jìn)行通信的高層之間的對話(huà)。服務(wù)主要是:協(xié)調應用程序之間的連接建立和中斷;為數據交互提供同步點(diǎn);協(xié)調通信雙方誰(shuí)可在何時(shí)發(fā)送數據;確保數據交換在會(huì )話(huà)關(guān)閉之前完成等。
表示層:把源端機器的數據編碼成適合于傳輸的比特序列,傳送到目的端后再進(jìn)行解碼,在保持數據含義不變的條件下,轉換成用戶(hù)所理解的形式。
應用層:為用戶(hù)的應用進(jìn)程訪(fǎng)問(wèn)OSI環(huán)境提供服務(wù)。
6.TCP/IP協(xié)議體系結構
答:TCP/IP是一個(gè)協(xié)議系列,目前已飲食了100多個(gè)協(xié)議,用于將各種計算機和數據通信設備組成計算機網(wǎng)絡(luò )。
TCP/IP協(xié)議具有如下特點(diǎn):1,協(xié)議標準具有開(kāi)放性,其獨立于特定的計算機硬件與操作系統,可以免費使用;2,統一分配網(wǎng)絡(luò )地址,使得整個(gè)TCP/IP設備在網(wǎng)絡(luò )中都具有惟一的IP地址。
分層:應用層(SMTP, DNS, NFS, FTP, Telnet, Others)、傳輸層(TCP,UDP)、互聯(lián)層(IP,ICMP, ARP, RARP)、主機——網(wǎng)絡(luò )層(Ethernet, ARPANET, PDN ,Others)。
傳輸控制協(xié)議TCP:定義了兩臺計算機之間進(jìn)行可靠數據傳輸所交換的數據和確認信息的格式,以及計算機為了確保數據的正確到達而采取的措施。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.580秒