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