




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、HttpHttp協議概述協議概述 HTTPHTTP協議概述協議概述HTTP協議定義 超文本傳輸協議(HyperText TransferProtocol)http是什么? 當我們想瀏覽一個網站的時候,只要在瀏覽器的地址欄里輸入網站的地址就可以了,我們在瀏覽器的地址欄里輸入的網站地址叫做URL(統一資源定位符),就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。當你在瀏覽器的地址框中輸入一個URL或是單擊一個超級鏈接時,URL就確定了要瀏覽的地址。瀏覽器通過超文本傳輸協議(HTTP),將Web服務器上站點的網頁代碼提取出來,并翻譯成網頁。 HttpHttp協議概述協議概述
2、Http協議特點 1.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。 2.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。 3.無連接:限制每次連接只處理一個請求。理完客戶的請求,即斷開連接。 4.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。 HttpHttp協議概述協議概述http是如何工作的 HttpHttp協議概述協議概述請求(request)請求行消息報頭(請求頭)請求正文 HttpHttp協議概述協議概述請求行: 請求方法+ 請求路徑+ 所用的協議請求方法: GETPOSTPUTDELETETRAC
3、E,OPTIONS等這些 我們常用的method有GET和POST所用的協議: 目前一般常用的是HTTP/1.1,0.9,1.0已經基本不用.請求行示例: POST /oris-common-master-portlet/catchmentZone/get.do?mode=edit&displayunit=&Id=2 HTTP/1.1 HttpHttp協議概述協議概述GET與POST方法的區別: 1.在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到;POST方式,數據放置在HTMLHEADER內提交。 2.GET方式提交的數據最多只能有1024字節,而POST則
4、沒有此限制。 3.安全性問題。正如在 1 中提到,使用Get的時候,參數會顯示在地址欄上,而Post不會,Post安全性方面更為好一點。所以,如果這些數據是中文數據而且是非敏感數據,那么使用get;如果用戶輸入的數據不是中文字符而且包含敏感數據,那么還是使用post為好。 HttpHttp協議概述協議概述請求頭: 由關鍵字/值對組成,每行一對,關鍵字和值用冒號(:)分隔。請求頭標通知服務器有關于客戶端的功能和標識,典型的請求頭標有: Accept請求報頭域用于指定客戶端接受哪些類型的信息 Accept-Charset請求報頭域用于指定客戶端接受的字符集 Accept-Encoding請求報頭域
5、類似于Accept,但是它是用于指定可接受的內容編碼 Accept-Language請求報頭域類似于Accept,但是它是用于指定一種自然語言。 Authorization請求報頭域主要用于證明客戶端有權查看某個資源。當瀏覽器訪問一個頁面時,如果收到服務器的響應代碼為401(未授權),可以發送一個包含Authorization請求報頭域的請求,要求服務器對其進行驗證。 Content Length:表示請求消息正文的長度。 From:請求發送者的email地址,由一些特殊的Web客戶程序使用,瀏覽器不會用到它。 Host(發送請求時,該報頭域是必需的)Host請求報頭域主要用于指定被請求資源的
6、Internet主機和端口號,它通常從HTTPURL中提取出來的 User-Agent User-Agent請求報頭域允許客戶端將它的操作系統、瀏覽器和其它屬性告訴服務器,不過,這個報頭域不是必需的。 Cookie:服務器存儲在客戶端的信息,每次請求都會將服務器保存在客戶端的cookies中 HttpHttp協議概述協議概述請求頭示例:Host: localhost:8080 Connection: keep-alive Content-Length: 0 Accept: */* Origin: http:/localhost:8080 X-Requested-With: XMLHttpReq
7、uest User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Referer:http:/localhost:8080/web/commenmaster1/commonmaster?p_auth=VyE3Xuy0&p_p_id=commonmasterportlet_WAR_oriscommonmasterportlet&p_p_lifecycle=1&p_p_state=norm
8、al&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_commonmasterportlet_WAR_oriscommonmasterportlet_javax.portlet.action=doRenderPage Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.8 C o o k i e : C O O K I E _ S U P P O R T = t r u e ; C O M P A N Y _ I D = 1 ; ID=66
9、466b63383878647672553d;USER_UUID=IDZcheyfFMV75PPlSrIHk0azUWCYpbNB; LOGIN=74657374; PASSWORD=5937365a764731443241633d; REMEMBER_ME=true; SCREEN_NAME=59426450565851685373493d; JSESSIONID=eQkP15kq8XuYawqVgoDcxuRc; GUEST_LANGUAGE_ID=en_US HttpHttp協議概述協議概述請求正文 請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求正文
10、。請求正文中可以包含客戶提交的查詢字符串信息:mode=edit&displayunit=&Id=2 HttpHttp協議概述協議概述響應(response)狀態行消息報頭(響應頭)響應正文 HttpHttp協議概述協議概述狀態行: response的第一行是狀態行,由協議版本以及數字狀態碼和相關的文本說明組成,HTTP版本+狀態碼+原因短語 如:HTTP/1.1 200 OK HTTP/1.1 404 Not Found狀態碼: 1XX信息類(Information),表示收到Web瀏覽器請求,正在進一步的處理中 2XX成功類(Successful),表示用戶請求被正確接收,
11、理解和處理例如:200OK 3XX-重定向類(Redirection),表示請求沒有成功,客戶必須采取進一步的動作。 4XX-客戶端錯誤(ClientError),表示客戶端提交的請求有錯誤例如:404NOTFound,意味著請求中所引用的文檔不存在。 5XX-服務器錯誤(ServerError)表示服務器不能完成對請求的處理:如500 HttpHttp協議概述協議概述消息報頭(響應頭): 跟請求頭一樣,也是由關鍵字/值對組成,每行一對,關鍵字和值用冒號(:)分隔。典型的響應頭標有: Allow: 服務器支持哪些請求方法(如GET、POST等)。 Content-Encoding: 文檔的編碼
12、(Encode)方法 Content-Length: 表示內容長度 Content-Type:表示后面的文檔屬于什么MIME類型。Servlet默認為text/plain,但通常需要顯式地指定為text/htm Date:當前的GMT時間 Last-Modified:文檔的最后改動時間 Location:表示客戶應當到哪里去提取文檔 Refresh:表示瀏覽器應該在多少時間之后刷新文檔,以秒計 Server:服務器名字。Servlet一般不設置這個值,而是由Web服務器自己設置。 Set-Cookie:設置和頁面關聯的Cookie HttpHttp協議概述協議概述請求正文 請求頭和請求正文之間
13、是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求正文。請求正文中可以包含客戶提交的查詢字符串信息:mode=edit&displayunit=&Id=2響應正文 響應正文是指服務器返回的文檔,最常見的為HTML網頁,響應頭和正文之間也必須用空行分隔 HttpHttp協議概述協議概述一些常見的HTTP協議狀態碼的含義100 Continue初始的請求已經接受,客戶應當繼續發送請求的其余部分101 Switching Protocols服務器將遵從客戶的請求轉換到另外一種協議200 OK一切正常,對GET和POST請求的應答文檔跟在后面201 Created服務器已
14、經創建了文檔,Location頭給出了它的URL。202 Accepted已經接受請求,但處理尚未完成。203 Non-Authoritative Information文檔已經正常地返回,但一些應答頭可能不正確,因為使用的是文檔的拷貝204 No Content沒有新文檔,瀏覽器應該繼續顯示原來的文檔。205 Reset Content沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容206 Partial Content客戶發送了一個帶有Range頭的GET請求,服務器完成了它 HttpHttp協議概述協議概述300 Multiple Choices客戶請求的文檔
15、可以在多個位置找到,這些位置已經在返回的文檔內列出。如果服務器要提出優先選擇,則應該在Location應答頭指明。301 Moved Permanently客戶請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL。302 Found類似于301,但新的URL應該被視為臨時性的替代,而不是永久性的。303 See Other類似于301/302,不同之處在于,如果原來的請求是POST,Location頭指定的重定向目標文檔應該通過GET提取304 Not Modified客戶端有緩沖的文檔并發出了一個條件性的請求(一般是提供If-Modified-Since
16、頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩沖的文檔還可以繼續使用。305 Use Proxy客戶請求的文檔應該通過Location頭所指明的代理服務器提取400 Bad Request請求出現語法錯誤。401 Unauthorized客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示用戶名字/密碼對話框,然后在填寫合適的Authorization頭后再次發出請求。 HttpHttp協議概述協議概述403 Forbidden資源不可用。404 Not Found無法找到指定位置的資源405 Method Not Allowe
17、d請求方法(GET、POST、HEAD、Delete、PUT、TRACE等)對指定的資源不適用。406 Not Acceptable指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容407 Proxy Authentication Required類似于401,表示客戶必須先經過代理服務器的授權。408 Request Timeout在服務器許可的等待時間內,客戶一直沒有發出任何請求??蛻艨梢栽谝院笾貜屯徽埱?。409 Conflict通常和PUT請求有關。由于請求和資源的當前狀態相沖突,因此請求不能成功。410 Gone所請求的文檔已經不再可用,而且服務器不知道應該
18、重定向到哪一個地址。它和404的不同在于,返回407表示文檔永久地離開了指定的位置,而404表示由于未知的原因文檔不可用。411 Length Required服務器不能處理請求,除非客戶發送一個Content-Length頭。 HttpHttp協議概述協議概述412 Precondition Failed請求頭中指定的一些前提條件失敗413 Request Entity Too Large目標文檔的大小超過服務器當前愿意處理的大小。如果服務器認為自己能夠稍后再處理該請求,則應該提供一個Retry-After頭414 Request URI Too LongURI太長416 Requested
19、 Range Not Satisfiable服務器不能滿足客戶在請求中指定的Range頭501 Not Implemented服務器不支持實現請求所需要的功能。例如,客戶發出了一個服務器不支持的PUT請求502 Bad Gateway服務器作為網關或者代理時,為了完成請求訪問下一個服務器,但該服務器返回了非法的應答503 Service Unavailable服務器由于維護或者負載過重未能應答。例如,Servlet可能在數據庫連接池已滿的情況下返回503。服務器返回503時可以提供一個Retry-After頭504 Gateway Timeout由作為代理或網關的服務器使用,表示不能及時地從遠
20、程服務器獲得應答505 HTTP Version Not Supported服務器不支持請求中所指明的HTTP版本 HttpHttp協議概述協議概述一些術語u連接(connection)為通信而在兩個程序間建立的傳輸層虛擬電路。u客戶端(client)為發送請求建立連接的程序。u用戶代理(useragent)初始化請求的客戶端程序。常見的如瀏覽器,編輯器,蜘蛛(可網絡穿越的機器人),或其他的終端用戶工具u服務器(Server)服務器是這樣一個應用程序,它同意請求端的連接,并發送響應(response)。源服務器(Originserver)存在資源或者資源在其上被創建的服務器(server)被成
21、為源服務器(originserver)。u代理(Proxy)代理是一個中間程序,它既可以擔當客戶端的角色也可以擔當服務器的角色。代理代表客戶端向服務器發送請求。客戶端的請求經過代理,會在代理內部得到服務或者經過一定的轉換轉至其他服務器。一個代理必須能同時實現本規范中對客戶端和服務器所作的要求。 HttpHttp協議概述協議概述u網關(gateway)網關其實是一個服務器,扮演著代表其它服務器為客戶端提供服務的中間者。與代理(proxy)不同,網關接收請求,仿佛它就是請求資源的源服務器。請求的客戶端可能覺察不到它正在同網關通信。u年齡(age)一個響應的年齡是從被源服務器發送或被源服務器成功驗證
22、到現在的時間。u保鮮(Fresh)如果一個響應的年齡還沒有沒有超過保鮮壽命(freshnesslifetime),那么它就是保鮮的.。u陳舊(Stale)一個響應的年齡已經超過了它的保鮮壽命(freshnesslifetime),那么就是陳舊的.u緩存(cache)緩存是程序響應消息的本地存儲。緩存是一個子系統,控制消息的存儲、獲取和刪除。緩存里存放可緩存的響應(cacheableresponse)為的是減少對將來同樣請求的響應時間和網絡帶寬消耗。任一客戶端或服務器都可能含有緩存,但緩存不能存在于一個充當隧道(tunnel)的服務器里。 HttpHttp協議概述協議概述緩存的處理流程 Http
23、Http協議概述協議概述緩存處理的具體步驟1 請求處理用戶發起一個http請求,緩存獲取到URL,根據URL查找是否有匹配的副本。2 新鮮度檢測如果緩存中存在所請求資源的副本,則進行新鮮度檢測。新鮮度檢測指的是,HTTP發起一個請求時,發現緩存中有相應的副本,接著就會檢查這個副本有沒有過期,如果沒有過期,直接使用。如果已經過期,則進行再驗證。具體的實現在下面會介紹。3 服務器再驗證緩存中的文檔過期了并不代表他和服務器上的不一樣,所以這個時候就需要問問服務器,過期的這段時間里這個文檔到底有沒有改變。如果改變了,緩存就會獲取一份新的文檔副本,然后發送給客戶端。如果沒有改變,緩存只需要獲取新的首部,
24、包括一個新的過期時間,并對緩存中的首部更新。4 創建響應并返回我們希望緩存看起來就像是來自原始服務器一樣,緩存將已緩存的服務器響應首部作為響應首部,發送給客戶端。 HttpHttp協議概述協議概述保質期的實現HTTP中,通過Cache-Control首部和Expires首部為文檔指定了過期時間,通過對過期時間的判斷,緩存就可以知道文檔是不是在保質期內。Expires首部和Cache-Control:max-age首部都是來告訴緩存文檔有沒有過期,為什么需要兩個響應首部來做這件簡單的事情了?其實這一切都是歷史原因,Expires首部是HTTP 1.0中提出來的,因為他使用的是絕對日期,如果服務端
25、和客戶端時鐘不同步的話(實際上這種情況非常常見),緩存可能就會認為文檔已經過了保質期。HTTP 1.1為了修正這個問題,引入了Cache-Control:max-age首部,這個首部使用相對時間來控制保質期,讓一切變得更加合理。舉個例子,我們買了一瓶汽水,如果使用Expires首部來標注保質期,就會這么寫:飲料過期時間:2012年12月21日,如果某個2貨不知道今天多少號,他還真不知道這飲料過期沒,我小時候飲料都這么寫。后來,有個挺有名的賣牛奶的,大概就叫蒙牛,他發明了一種標注保質期的方法,他怎么搞了?他這么寫:保質期:12個月,行,牛逼了,我牛奶一年前就生產出來的牛奶,今天要發給廠家,發之前,先往包裝上印上生產日期(當然是印發貨那天),然后告訴你,明年才過期,這多聰明,搞成相對的,毒死你。也許HTTP 1.1借鑒了這個偉大的發明,于是就有了Cache-Control:max-age首部。 HttpHttp協議概述協議概述服務器再驗證的實現緩存要問問服務器,牛奶已經過期了,到底還能不能使用。HTTP中,使用兩個請求請首部來完成這個功能:If-Modifi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中數學蘇科版七年級上冊2.4 絕對值與相反數教案設計
- 北師大版(2013)六年級下冊第二十九課 小小理財師教案配套
- 五一節前安全教育培訓
- 重癥肌無力小講課
- 浙教版七年級科學上 4.8 物理性質和化學性質教學設計
- 二婚夫妻合同終止條款
- 人教版小學二年級上冊數學 第4單元 第3課時 5的乘法口訣 教案
- 供應商合作合同樣本
- 人教版實驗活動1 氧氣的實驗室制取與性質教案配套
- 2025網絡視頻廣告投放合同范本
- 2024年湖南省各市州湘能農電服務有限公司招聘筆試參考題庫含答案解析
- 三年級下冊面積單位換算練習200道及答案
- 《游園》(教案)-高中語文統編版必修下冊
- 正大天虹方矩管鍍鋅方矩管材質書
- 《婚姻繼承法第四章》課件
- 血液透析并發癥護理查房課件
- 全子宮切除術后教學查房
- 大門改造施工方案
- 化療藥外溢處理應急預案
- 顛覆:迎接第二次量子革命
- 液冷數據中心白皮書 2023:數據中心液冷革命解鎖未來的數字冰河
評論
0/150
提交評論