九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
java程序員菜鳥進(jìn)階(六)《HTTP權(quán)威指南》之HTTP相關(guān)概念詳解

Http:超文本傳輸協(xié)議,在我們?nèi)缃竦木W(wǎng)絡(luò)時代。我們每天瀏覽著萬萬千千的網(wǎng)頁,圖片,文字,這些都離不開Http,他是我們快速可靠訪問世界各地的web服務(wù)器資源地基礎(chǔ)。Http使用的是可靠地?cái)?shù)據(jù)傳輸協(xié)議TCP協(xié)議。這樣就是保證了我們所訪問資源的萬無一失,不會產(chǎn)生數(shù)據(jù)丟失或者損壞。這也可以使我們開發(fā)人員把更多的經(jīng)歷放在程序業(yè)務(wù)細(xì)節(jié)上得編寫。避免了考慮一些數(shù)據(jù)傳輸途中的缺陷。下面我們就簡單來看一下HTTP有關(guān)的基礎(chǔ)知識。


一:web服務(wù)器和客戶端

Web服務(wù)器所使用的是HTTP協(xié)議。所以經(jīng)常被稱為HTTP服務(wù)器,這些服務(wù)器存儲了大量的網(wǎng)絡(luò)資源。在我們平時的上網(wǎng)過程中。我們每一次點(diǎn)擊的一個連接其實(shí)就是一個web請求。當(dāng)我們點(diǎn)擊連接時,web客戶端,在這里也就是指的是瀏覽器會向web服務(wù)器發(fā)送一個請求。Web服務(wù)器根據(jù)請求的資源提供數(shù)據(jù)

                                                                                             


二.資源

在我們平時上網(wǎng)中所看到的的大多數(shù)都是web資源。這些資源都寄存在web服務(wù)器上。當(dāng)我們訪問想要的資源時。Web服務(wù)器會給我們提供。最簡單也是最常見的資源就是一些靜態(tài)資源。如一些文檔,靜態(tài)頁面、音頻等。但資源不一定是靜態(tài)文件,有些資源還可以是根據(jù)需要生產(chǎn)內(nèi)容的軟件程序

1.媒體類型

在眾多的web資源中,它們有數(shù)千種不同的數(shù)據(jù)類型。HTTP會給每種要通過web傳輸?shù)馁Y源對象定義一個MIME類型的標(biāo)簽。MIME類型是一種文本標(biāo)記。表示一種主要的對象類型和一個特定的子類型。中間由一條斜杠來分割。

常見的MIME類型(通用型)

超文本標(biāo)記語言文本 .html text/html

xml文檔 .xml text/xml

XHTML文檔 .xhtml application/xhtml+xml

普通文本 .txt text/plain

AVI文件 .avi video/x-msvideo

GZIP文件 .gz application/x-gzip

TAR文件 .tar application/x-tar

任意的二進(jìn)制數(shù)據(jù) application/octet-stream


2.URI

每一個web服務(wù)器資源都有一個名字,這個名字叫資源標(biāo)識符。他就像一個郵政地址一樣,在世界范圍內(nèi)唯一標(biāo)識并定位信息資源。URI有兩種形式。分別為URLURN.


3.URL

統(tǒng)一資源定位符(URL,英語UniformResourceLocator的縮寫)也被稱為網(wǎng)頁地址,是因特網(wǎng)上標(biāo)準(zhǔn)的資源的地址。 

URL的格式由下列三部分組成:

第一部分是協(xié)議(或稱為服務(wù)方式);

第二部分是存有該資源的主機(jī)IP地址(有時也包括端口號);

第三部分是主機(jī)資源的具體地址。,如目錄和文件名等。

第一部分和第二部分之間用//”符號隔開,第二部分和第三部分用“/”符號隔開。第一部分和第二部分是不可缺少的,第三部分有時可以省略。現(xiàn)在幾乎所有的URI都是URL


4.URN

統(tǒng)一資源名稱 (Uniform Resource Name, URN),唯一標(biāo)識一個實(shí)體的標(biāo)識符,但是不能給出實(shí)體的位置。系統(tǒng)可以先在本地尋找一個實(shí)體,在它試著在Web上找到該實(shí)體之前。它也允許Web位置改變,然而這個實(shí)體卻還是能夠被找到。URN 可以提供一種機(jī)制,用于查找和檢索定義特定命名空間的架構(gòu)文件。盡管普通的 URL 可以提供類似的功能,但是在這方面,URN 更加強(qiáng)大并且更容易管理,因?yàn)?nbsp;URN 可以引用多個 URL。與 URL 不同,URN 與地址無關(guān)。URN 和 URL 都屬于 URI。URNweb中主要應(yīng)用是下拉菜單的制作。使用URN時下拉菜單的易擴(kuò)展性將會得到很大的提高。

三.事務(wù)


一個HTTP事務(wù)是有一個web客戶端的請求和得到一個web服務(wù)器端響應(yīng)組成的。這種通信時通過一種叫http報(bào)文的數(shù)據(jù)塊進(jìn)行傳輸?shù)摹?/span>


1.方法

每一種HTTP請求報(bào)文都包含一種方法。這個方法指示了服務(wù)器要執(zhí)行什么動作(獲取頁面、運(yùn)行網(wǎng)關(guān)程序、刪除文件等)。


四。種常見的Http方法


1.HEAD 向服務(wù)器索要與GET請求相一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以在不必傳輸整個響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息?!?/span>

2.GET 向特定的資源發(fā)出請求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生副作用的操作中,例如在web app.中。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。 

3.POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改?!?/span>

4.PUT 向指定資源位置上傳其最新內(nèi)容。 

5.DELETE 請求服務(wù)器刪除Request-URI所標(biāo)識的資源。


2.狀態(tài)碼

每一個HTTP響應(yīng)報(bào)文都會帶回一個響應(yīng)狀態(tài)碼。顧名思義,狀態(tài)碼就是反應(yīng)此次請求的結(jié)果狀態(tài)。反應(yīng)請求是否成功,或者要執(zhí)行其他動作。常見狀態(tài)碼有200,404,505

所有狀態(tài)碼詳細(xì)信息:http://baike.baidu.com/view/1790469.htm 


3.web頁面中可以包含多個對象

應(yīng)用程序完成一項(xiàng)任務(wù)時通常會發(fā)布多個HTTP 事務(wù)。比如,Web 瀏覽器會發(fā)布一系列HTTP 事務(wù)來獲取并顯示一個包含了豐富圖片的Web 頁面。瀏覽器會執(zhí)行一個事務(wù)來獲取描述頁面布局的HTML“框架,然后發(fā)布另外的HTTP 事務(wù)來獲取每個嵌入式圖片、圖像面板、Java 小程序等 


五.報(bào)文


一個HTTP請求報(bào)文由請求行(request line)、請求頭部(header)和請求數(shù)據(jù)3個部分組成, HTTP有兩類報(bào)文:請求報(bào)文和響應(yīng)報(bào)文。請求和響應(yīng)報(bào)文顧名思義,一個是web客戶端發(fā)送請求時響應(yīng)的HTTp 報(bào)文,一個是web服務(wù)器響應(yīng)式響應(yīng)的Http報(bào)文。其實(shí)他們的格式都是相同的。

我們以一個實(shí)際的看一下請求報(bào)文: 

                                   




是請求方法,GETPOST是最常見的HTTP方法,除此以外還包括DELETE、HEAD、OPTIONS、PUT、TRACE。不過,當(dāng)前的大多數(shù)瀏覽器只支持GETPOST,Spring 3.0提供了一個HiddenHttpMethodFilter,允許你通過“_method”的表單參數(shù)指定這些特殊的HTTP方法(實(shí)際上還是通過POST提交表單)。服務(wù)端配置了HiddenHttpMethodFilter后,Spring會根據(jù)_method參數(shù)指定的值模擬出相應(yīng)的HTTP方法,這樣,就可以使用這些HTTP方法對處理方法進(jìn)行映射了。 
為請求對應(yīng)的URL地址,它和報(bào)文頭的Host屬性組成完整的請求URL,是協(xié)議名稱及版本號。 

①②③統(tǒng)稱為請求行
HTTP的報(bào)文頭,報(bào)文頭包含若干個屬性,格式為屬性名:屬性值,服務(wù)端據(jù)此獲取客戶端的信息。 
是報(bào)文體,它將一個頁面表單中的組件值通過param1=value1?m2=value2的鍵值對形式編碼成一個格式化串,它承載多個請求參數(shù)的數(shù)據(jù)。不但報(bào)文體可以傳遞請求參數(shù),請求URL也可以通過類似于“/chapter15/user.html? param1=value1?m2=value2”的方式傳遞請求參數(shù)。 

六.連接

這里所說的連接其實(shí)就是TCP連接。HTTP報(bào)文就是通過TCP連接進(jìn)行數(shù)據(jù)傳輸?shù)摹?/span>


1.TCP/IP

HTTP是應(yīng)用層協(xié)議,他無需操心網(wǎng)絡(luò)通信的具體細(xì)節(jié),這些具體工作都交給了同用、可靠地因特網(wǎng)傳輸協(xié)議TCP/IP

從協(xié)議分層模型方面來講,TCP/IP由四個層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。 

因特網(wǎng)本身就是基于TCP/IP的。它隱藏了許多網(wǎng)絡(luò)傳輸過程中的弱點(diǎn)和各種網(wǎng)絡(luò)和硬件特點(diǎn)。使各種類型的計(jì)算機(jī)和網(wǎng)絡(luò)都能進(jìn)行可靠地通信。只要簡歷的TCP連接??蛻舳撕头?wù)器端就能進(jìn)行安全可靠地?cái)?shù)據(jù)傳輸。用網(wǎng)絡(luò)術(shù)語來說,HTTP 協(xié)議位于 TCP 的上層。HTTP 使用 TCP 來傳輸其報(bào)文數(shù)據(jù)。與之類似,TCP 則位于 IP 的上層。


                                                                         



2.連接、IP地址和端口號

HTTP客戶端在向服務(wù)器發(fā)送報(bào)文之前首先要首先要用端口號和IP地址建立一個TCP/IP連接 。建立一個TCP連接就和一個小區(qū)的某戶人家寄信是一個樣的。小區(qū)的地址就相當(dāng)于一個IP地址。我們知道他的地址在那個小區(qū)的哪個樓了。但我們不知道他的門牌號還是無法確定是哪一家的信。所以我們需要一個端口號即為門牌號去具體確定是哪一個服務(wù)

                                                             

七.Web的結(jié)構(gòu)部件

這里我們主要是先來了解幾個基本的概念


1.代理:位于客戶端和服務(wù)器之間的HTTP中間實(shí)體。他其實(shí)的作用就是接收HTTP請求。然后作為中間人在轉(zhuǎn)發(fā)出去。它有可能對請求做一些改變也可能原封不動的轉(zhuǎn)發(fā)出去。


2.緩存:HTTP的倉庫,使常用頁面的副本可以保存在離客戶端更近的地方。有了緩存之后可以加快HTTP請求的訪問速度。如果一個請求被請求過。再次請求的時候去緩存中找。這樣大大減小了服務(wù)器的壓力。


3.網(wǎng)關(guān):連接其他應(yīng)用程序的特殊Web服務(wù)器。其實(shí)說白了,他就是一個轉(zhuǎn)換網(wǎng)絡(luò)協(xié)議的中間變量。假如它收到一個HTTP請求。這個可能訪問的資源可能需要用到FTP協(xié)議請求所需資源。這時就要用到網(wǎng)關(guān)


4隧道:對HTTP通信報(bào)文進(jìn)行盲轉(zhuǎn)發(fā)的特殊代理。隧道(tunnel)是建立起來之后,就會在兩條連接之間對原始數(shù)據(jù)進(jìn)行盲轉(zhuǎn)發(fā)的HTTP應(yīng)用程序。HTTP隧道通常用來在一條或多條HTTP連接上轉(zhuǎn)發(fā)非HTTP數(shù)據(jù),轉(zhuǎn)發(fā)時不會窺探數(shù)據(jù)。 隧道這個概念我沒有理解很透徹,還有些疑惑。希望對這個理解透徹的朋友講解一下


5.Agent代理:發(fā)起自動HTTP請求的半智能Web客戶端。我們目前大多數(shù)發(fā)起HTTP請求的web客服端都是基于瀏覽器。Agent代理就是一個自動發(fā)送HTTP請求的工具


到目前為止,一些關(guān)于HTTP協(xié)議的基本概念簡單介紹完畢,在以后的文章中我還會細(xì)寫有關(guān)概念。敬請期待。




     昨晚讀《http權(quán)威指南》疑問,在將相對url轉(zhuǎn)為絕對url時,如果相對url沒有方案,主機(jī),端口,參數(shù),查詢字符串等組件,那么它將繼承基礎(chǔ)的的相關(guān)組件……那么在我們平時的web開發(fā)中,在第一個頁面點(diǎn)擊一個鏈接傳的參數(shù)(查詢字符串),在鏈接頁面的request中,可以得到參數(shù)值那如果在鏈接的頁面中有一個相對url鏈接,點(diǎn)擊這個鏈接之后,是不是在這個鏈接頁面的request中也可以得到剛才傳的參數(shù)值?求各位大神幫忙解答。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
我所理解的RESTful Web API [Web標(biāo)準(zhǔn)篇]
HTTP請求、響應(yīng)報(bào)文格式
Mongoose源碼剖析:外篇之web服務(wù)器
HTTP圖解
整天寫CRUD沒勁,寫了個Web服務(wù)器
看完這篇HTTP,跟面試官扯皮就沒問題了
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服