欧美视频精品,女人与大狼拘配视频,日韩另类在线,伊人网99,亚洲网站免费,avav34,夜夜躁很很躁日日躁2022

javhd觀看教程

超文本傳輸協(xié)議(HTTP,Hypertext Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的Web文件都必須遵守這個(gè)標(biāo)準(zhǔn)。設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁(yè)面的方法。1960年美國(guó)人Ted Nelson構(gòu)思了一種通過(guò)計(jì)算機(jī)處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基。Ted Nelson組織協(xié)調(diào)萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force)共同合作研究,最終發(fā)布了一系列的RFC文檔,其中著名的RFC 2616定義了HTTP 1.1。

HTTP基于TCP/IP通信協(xié)議來(lái)傳遞數(shù)據(jù),HTTP屬于OSI網(wǎng)絡(luò)七層協(xié)議模型中的最上層:應(yīng)用層,由請(qǐng)求和響應(yīng)組成,是一個(gè)標(biāo)準(zhǔn)的客戶端服務(wù)器模型。HTTP是一個(gè)無(wú)狀態(tài)的協(xié)議。HTTP協(xié)議的版本有0.9、1.0、1.1和2.0,目前廣泛使用的是1.1版本。

HTTP默認(rèn)端口號(hào)為80。它也可以承載在TLS和SSL之上,通過(guò)加密、認(rèn)證的方式實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)陌踩?,稱為HTTPS,HTTPS默認(rèn)端口號(hào)為443。

HTTP協(xié)議具有以下特點(diǎn):

● 簡(jiǎn)單快速,客戶端向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳送請(qǐng)求方法和路徑。請(qǐng)求方法常用的有GET和POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系時(shí)的類型。由于HTTP協(xié)議簡(jiǎn)單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。

● 靈活,HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。

● 無(wú)連接,無(wú)連接的含義是限制每次連接只處理一個(gè)請(qǐng)求。服務(wù)器處理完成客戶的請(qǐng)求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。

● 無(wú)狀態(tài),HTTP協(xié)議是無(wú)狀態(tài)協(xié)議。無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重新傳送數(shù)據(jù),這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要之前的信息時(shí)它的應(yīng)答就比較快。

HTTP協(xié)議規(guī)定了Web的基本運(yùn)作過(guò)程,以及瀏覽器與Web服務(wù)器之間的通信細(xì)節(jié)??蛻舳酥鲃?dòng)發(fā)出HTTP請(qǐng)求,服務(wù)器端接收HTTP請(qǐng)求,再返回相應(yīng)的HTTP響應(yīng)結(jié)果??蛻舳伺c服務(wù)器端之間的一次信息交換包括以下過(guò)程:

● 客戶端與服務(wù)器端建立TCP連接。

● 客戶端發(fā)出HTTP請(qǐng)求。

● 服務(wù)器端發(fā)出響應(yīng)的HTTP響應(yīng)。

● 客戶端與服務(wù)器端之間的TCP連接關(guān)閉。

當(dāng)用戶在瀏覽器中輸入U(xiǎn)RL地址:http://www.itxdl.cn后,瀏覽器與服務(wù)器之間的具體通信過(guò)程如下:

● 瀏覽器與網(wǎng)絡(luò)上域名為www.itxdl.cn的Web服務(wù)器建立TCP連接。

● 瀏覽器發(fā)出要求訪問(wèn)index.html(網(wǎng)站主頁(yè),歡迎頁(yè))的HTTP請(qǐng)求。

● Web服務(wù)器在接收到HTTP請(qǐng)求后,解析HTTP請(qǐng)求,然后發(fā)回包含index.html文件數(shù)據(jù)的HTTP響應(yīng)。

● 瀏覽器在接收到HTTP響應(yīng)后,解析HTTP響應(yīng),并在窗口中展示index.html文件。

● 瀏覽器與Web服務(wù)器之間的TCP連接關(guān)閉。

當(dāng)用戶在上面的網(wǎng)站頁(yè)面中用鼠標(biāo)點(diǎn)擊“JavaEE工程師”的超鏈接時(shí),將會(huì)觸發(fā)瀏覽器與Web服務(wù)器開始一次新的HTTP通信,在這次通信過(guò)程中,瀏覽器會(huì)發(fā)出請(qǐng)求訪問(wèn)“JavaEE工程師”頁(yè)面的HTTP請(qǐng)求。

從瀏覽器與Web服務(wù)器的通信過(guò)程中,可以看出瀏覽器應(yīng)該具備以下功能:

● 請(qǐng)求與Web服務(wù)器建立TCP連接。

● 創(chuàng)建并發(fā)送HTTP請(qǐng)求。

● 接收并解析HTTP響應(yīng)。

● 在瀏覽器窗口中展示HTML文檔。

Web服務(wù)器應(yīng)該具有以下功能:

● 接收來(lái)自客戶端瀏覽器的TCP連接請(qǐng)求。

● 接收并解析HTTP請(qǐng)求。

● 創(chuàng)建并發(fā)送HTTP響應(yīng)。

HTTP客戶端程序和HTTP服務(wù)器分別由不同的軟件開發(fā)商提供,目前最常使用的HTTP客戶端程序包括IE(Microsoft Edge)、Firefox、Opera和NetScape、Chrome等,最常用的HTTP服務(wù)器包括IIS和Apache等。HTTP客戶程序和服務(wù)器程序都可以用任意的編程語(yǔ)言編寫,那么用VC編寫的HTTP客戶程序能否與用Java編寫的HTTP服務(wù)器順利通信呢?答案是肯定的。此外,運(yùn)行在Windows平臺(tái)上的HTTP客戶程序能否與運(yùn)行在Linux平臺(tái)上的HTTP服務(wù)器通信呢?答案也是肯定的。

HTTP客戶程序和服務(wù)器程序分別用不同的語(yǔ)言編寫,并且運(yùn)行在不用的平臺(tái)上,雙方如何能看得懂對(duì)方的數(shù)據(jù)呢?這要?dú)w功于HTTP協(xié)議。HTTP協(xié)議嚴(yán)格規(guī)定了HTTP請(qǐng)求和HTTP響應(yīng)的數(shù)據(jù)格式,只要HTTP服務(wù)器與客戶程序之間的交換數(shù)據(jù)都遵守HTTP協(xié)議,雙方都能看得懂對(duì)方發(fā)送的數(shù)據(jù),從而能順利交流。

HTTP協(xié)議由兩部分組成,分別是請(qǐng)求部分和響應(yīng)部分。

1.3.2 HTTP協(xié)議中的請(qǐng)求

客戶端連接上服務(wù)器端后,向服務(wù)器端請(qǐng)求某個(gè)Web資源,稱之為客戶端向服務(wù)器端發(fā)送了一個(gè)HTTP請(qǐng)求。

一個(gè)完整的HTTP請(qǐng)求包含以下內(nèi)容:

● 請(qǐng)求行

● 請(qǐng)求頭

● 請(qǐng)求空行

● 請(qǐng)求體

一個(gè)HTTP請(qǐng)求的示例:

POST /servlet/login.html HTTP/1.1

Host: localhost:8088

Content-Length: 21

Cache-Control: max-age=0

Accept: text/html,application/xhtml+xml,application/xml; q=0.9,image/webp, */*;q=0.8

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip,deflate,sdch

Accept-Language: zh-CN,zh;q=0.8

name=snape&pwd=123456

現(xiàn)在我們分析上面請(qǐng)求示例中各部分的內(nèi)容:

● 請(qǐng)求行

HTTP請(qǐng)求中的請(qǐng)求行描述了請(qǐng)求方法,請(qǐng)求的服務(wù)器地址以及所使用的HTTP協(xié)議版本。

上面的HTTP請(qǐng)求實(shí)例中,位于請(qǐng)求行中的POST稱之為請(qǐng)求方式,HTTP協(xié)議中定義的請(qǐng)求方式如表1.1所示:

表1.1 HTTP協(xié)議中定義的請(qǐng)求方式

用戶如果沒有設(shè)置,默認(rèn)情況下瀏覽器向服務(wù)器發(fā)送的都是GET請(qǐng)求,例如在瀏覽器中直接輸入地址訪問(wèn),點(diǎn)擊超鏈接訪問(wèn)等都是GET請(qǐng)求,用戶如果想把請(qǐng)求方式改為POST,可通過(guò)更改表單的提交方式實(shí)現(xiàn)。

不管POST還是GET,都用于向服務(wù)器端請(qǐng)求某個(gè)Web資源,這兩種方式的區(qū)別會(huì)在本書的1.3.4小節(jié)中進(jìn)行詳細(xì)的介紹。

在請(qǐng)求行中,請(qǐng)求方式之后的是URL地址和HTTP協(xié)議的版本。它們之間使用空格分隔。

● 請(qǐng)求頭

HTTP請(qǐng)求中的請(qǐng)求頭由一個(gè)個(gè)的鍵值對(duì)組成,是用來(lái)通知服務(wù)器有關(guān)客戶端的信息的。HTTP請(qǐng)求中常用以下的請(qǐng)求頭來(lái)告訴服務(wù)器一些信息:

(1)Accept:瀏覽器可接受的MIME類型。

(2)Accept-Charset:瀏覽器可接受的字符集。

(3)Accept-Encoding:瀏覽器能夠進(jìn)行解碼的壓縮格式。

(4)Accept-Language:瀏覽器所處的語(yǔ)言環(huán)境環(huán)境。

(5)Host:瀏覽器通過(guò)這個(gè)頭告訴服務(wù)器想訪問(wèn)哪臺(tái)主機(jī)。

(6)Content-Length:表示請(qǐng)求消息的正文長(zhǎng)度。

(7)Content-Type:表示請(qǐng)求的MIME類型。

(8)User-Agent:表示瀏覽器的標(biāo)識(shí)信息。

(9)Cache-Control:標(biāo)識(shí)瀏覽器緩存機(jī)制。

● 請(qǐng)求空行

在HTTP請(qǐng)求的請(qǐng)求頭和請(qǐng)求體之間,使用了一個(gè)請(qǐng)求空行用來(lái)分隔,告訴服務(wù)器端已經(jīng)沒有請(qǐng)求頭信息了。即使請(qǐng)求體中沒有內(nèi)容,也必須有一個(gè)請(qǐng)求空行

● 請(qǐng)求體

請(qǐng)求體用來(lái)向服務(wù)器發(fā)送數(shù)據(jù)信息,使用“key=value&key=value”的形式,在GET請(qǐng)求中,請(qǐng)求體是空的,GET請(qǐng)求的數(shù)據(jù)信息在請(qǐng)求行中的URL地址中進(jìn)行拼接。

1.3.3 HTTP協(xié)議中的響應(yīng)

一個(gè)HTTP響應(yīng)代表了服務(wù)器端向客戶端返回的數(shù)據(jù),一個(gè)HTTP完整的響應(yīng)包含了以下內(nèi)容:

● 響應(yīng)行

● 響應(yīng)頭

● 響應(yīng)體

一個(gè)HTTP響應(yīng)的示例:

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Last-Modified: Thu, 08 Sep 2016 12:59:41 GMT

Content-Type: text/html

Content-Length: 588

Date: Thu, 08 Sep 2016 12:59:54 GMT

這是一個(gè)HTML頁(yè)面

現(xiàn)在我們分析上面響應(yīng)示例中各部分的內(nèi)容:

● 響應(yīng)行

以及HTTP響應(yīng)中的響應(yīng)行用于描述服務(wù)器端對(duì)請(qǐng)求的處理結(jié)果,其中包括了HTTP協(xié)議的版本號(hào)已經(jīng)響應(yīng)狀態(tài)碼信息,狀態(tài)碼用于表示服務(wù)器對(duì)請(qǐng)求的處理結(jié)果。

響應(yīng)狀態(tài)碼由三位十進(jìn)制數(shù)字組成,第一個(gè)十進(jìn)制數(shù)定義了狀態(tài)碼的類型,后兩個(gè)數(shù)字沒有分類的作用。響應(yīng)狀態(tài)碼共分為5中類型,如下表1.2所示。

表1.2 響應(yīng)狀態(tài)碼分類

目前比較常見的響應(yīng)狀態(tài)碼如表1.3所示。

表1.3 常見響應(yīng)狀態(tài)碼

● 響應(yīng)頭

響應(yīng)頭用于描述服務(wù)器的基本信息,以及對(duì)返回的數(shù)據(jù)進(jìn)行描述,服務(wù)器通過(guò)這些數(shù)據(jù)的描述信息,通知客戶端如何處理服務(wù)器端返回的數(shù)據(jù)。HTTP響應(yīng)中常用以下的響應(yīng)頭來(lái)告訴瀏覽器一些信息:

(1)Server:服務(wù)器名稱,一般由Web服務(wù)器設(shè)置的,如:Apache、Tomcat。

(2)Location:通過(guò)設(shè)置Location通知瀏覽器跳轉(zhuǎn)到指定的地址再次發(fā)送請(qǐng)求。

(3)Content-Encoding:該響應(yīng)頭告訴瀏覽器返回的數(shù)據(jù)的壓縮格式。

(4)Content-Length:該響應(yīng)頭告訴瀏覽器返回的數(shù)據(jù)的長(zhǎng)度。

(5)Content-Type:通過(guò)該響應(yīng)頭告訴瀏覽器返回的數(shù)據(jù)的類型。

(6)Date:表示當(dāng)前的GMT時(shí)間。

(7)Last-Modified:表示文檔的最后修改時(shí)間。

● 響應(yīng)體

在HTTP響應(yīng)中的響應(yīng)體中,包含了服務(wù)器端返回給瀏覽器的數(shù)據(jù)。根據(jù)Content-Type類型的不同,響應(yīng)體中的數(shù)據(jù)形式也不同。

1.3.4 HTTP協(xié)議中的GET和POST請(qǐng)求的區(qū)別

● GET請(qǐng)求:

(1)GET請(qǐng)求的數(shù)據(jù),以鍵值對(duì)的形式在請(qǐng)求行中的URL后,以?進(jìn)行拼接,多個(gè)鍵值對(duì)之間使用&拼接。

(2)GET請(qǐng)求只能傳輸字符串類型的數(shù)據(jù)。

(3)GET請(qǐng)求因?yàn)g覽器限制URL長(zhǎng)度的原因只能傳輸少量數(shù)據(jù)。

(4)因?yàn)镚ET請(qǐng)求會(huì)將傳輸?shù)臄?shù)據(jù)顯示在地址欄中,所以相對(duì)POST請(qǐng)求不安全。

● POST請(qǐng)求:

(1)POST請(qǐng)求的數(shù)據(jù),以鍵值對(duì)的形式存儲(chǔ)在請(qǐng)求體中,多個(gè)鍵值對(duì)之間使用&拼接。

(2)POST請(qǐng)求可以傳輸任意類型的數(shù)據(jù)。

(3)POST請(qǐng)求對(duì)傳輸?shù)臄?shù)據(jù)的大小沒有限制。

(4)相對(duì)于GET請(qǐng)求,POST請(qǐng)求不會(huì)將傳輸?shù)臄?shù)據(jù)顯示在地址欄中,較為安全。

標(biāo)簽: java   教程  
來(lái)源:星島中文網(wǎng)
編輯:GY653

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作媒體供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

  • 相關(guān)推薦