版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
HTTP協(xié)議基礎(chǔ)在日常工作和生活中,HTTP是我們經(jīng)常用到的協(xié)議之一。很多內(nèi)容需要記錄下來以便平時(shí)查閱。下面就進(jìn)入正題:HTTP是什么?HTTP是HyperTextTransferProtocol(超文本傳輸協(xié)議)的縮寫。它的發(fā)展是萬維網(wǎng)協(xié)會(huì)(WorldWideWebConsortium)和Internet工作小組IETF(InternetEngineeringTaskForce)合作的結(jié)果,最終發(fā)布了一系列的RFC,RFC1945定義了HTTP/1.0版本。其中最著名的就是RFC2616。RFC2616定義了今天普遍使用的一個(gè)版本——HTTP1.1。
HTTP在網(wǎng)絡(luò)模型中的位置HTTP是一個(gè)基于請(qǐng)求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,?;赥CP的連接方式,HTTP1.1版本中給出一種持續(xù)連接的機(jī)制,絕大多數(shù)的Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用。
URL介紹URL(UniformResourceLocator)
地址用于描述一個(gè)網(wǎng)絡(luò)上的資源,
基本格式如下:schema://host[:port#]/path/.../[?query-string][#anchor]scheme
指定低層使用的協(xié)議(例如:http,https,ftp)hostHTTP服務(wù)器的IP地址或者域名port#HTTP服務(wù)器的默認(rèn)端口是80,這種情況下端口號(hào)可以省略。如果使用了別的端口,必須指明。path
訪問資源的路徑query-string
發(fā)送給http服務(wù)器的數(shù)據(jù)anchor-
錨
Request請(qǐng)求格式比較固定,所以自己組包的時(shí)候要注意,否則服務(wù)器會(huì)返回badrequest錯(cuò)誤http請(qǐng)求由三部分組成,分別是:請(qǐng)求行、請(qǐng)求頭、請(qǐng)求正文1、請(qǐng)求行以一個(gè)方法符號(hào)開頭,以空格分開,后面跟著請(qǐng)求的URI和協(xié)議的版本,METHOD有多種,各個(gè)方法的解釋如下:
GET
請(qǐng)求獲取Request-URI所標(biāo)識(shí)的資源
POST
在Request-URI所標(biāo)識(shí)的資源后附加新的數(shù)據(jù)
HEAD
請(qǐng)求獲取由Request-URI所標(biāo)識(shí)的資源的響應(yīng)消息報(bào)頭
PUT
請(qǐng)求服務(wù)器存儲(chǔ)一個(gè)資源,并用Request-URI作為其標(biāo)識(shí)
DELETE
請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源
TRACE
請(qǐng)求服務(wù)器回送收到的請(qǐng)求信息,主要用于測試或診斷
CONNECT
保留將來使用
OPTIONS
請(qǐng)求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求其實(shí)常用的就是POST和GET兩種。2、請(qǐng)求頭由一個(gè)域名,冒號(hào)(:)和域值三部分組成。名字是大小寫無關(guān)的,值前可以添加任何數(shù)量的空格符,請(qǐng)求頭可以被擴(kuò)展為多行,在每行開始處,使用至少一個(gè)空格或制表符。Accept:瀏覽器可接受的MIME類型。
Accept-Charset:瀏覽器可接受的字符集。
Accept-Encoding:瀏覽器能夠進(jìn)行解碼的數(shù)據(jù)編碼方式,比如gzip。
Accept-Language:瀏覽器所希望的語言種類,當(dāng)服務(wù)器能夠提供一種以上的語言版本時(shí)要用到。
Authorization:授權(quán)信息,通常出現(xiàn)在對(duì)服務(wù)器發(fā)送的WWW-Authenticate頭的應(yīng)答中。
Connection:表示是否需要持久連接。如果Servlet看到這里的值為“Keep-Alive”,或者看到請(qǐng)求使用的是HTTP1.1(HTTP1.1默認(rèn)進(jìn)行持久連接),它就可以利用持久連接的優(yōu)點(diǎn),當(dāng)頁面包含多個(gè)元素時(shí)(例如Applet,圖片),顯著地減少下載所需要的時(shí)間。要實(shí)現(xiàn)這一點(diǎn),Servlet需要在應(yīng)答中發(fā)送一個(gè)Content-Length頭,最簡單的實(shí)現(xiàn)方法是:先把內(nèi)容寫入ByteArrayOutputStream,然后在正式寫出內(nèi)容之前計(jì)算它的大小。
Content-Length:表示請(qǐng)求消息正文的長度。
Cookie:設(shè)置cookie,這是最重要的請(qǐng)求頭信息之一
From:請(qǐng)求發(fā)送者的email地址,由一些特殊的Web客戶程序使用,瀏覽器不會(huì)用到它。
Host:初始URL中的主機(jī)和端口。
If-Modified-Since:只有當(dāng)所請(qǐng)求的內(nèi)容在指定的日期之后又經(jīng)過修改才返回它,否則返回304“NotModified”應(yīng)答。
Pragma:指定“no-cache”值表示服務(wù)器必須返回一個(gè)刷新后的文檔,即使它是代理服務(wù)器而且已經(jīng)有了頁面的本地拷貝。
Referer:包含一個(gè)URL,用戶從該URL代表的頁面出發(fā)訪問當(dāng)前請(qǐng)求的頁面。
User-Agent:瀏覽器類型,如果Servlet返回的內(nèi)容與瀏覽器類型有關(guān)則該值非常有用。
UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE瀏覽器所發(fā)送的非標(biāo)準(zhǔn)的請(qǐng)求頭,表示屏幕大小、顏色深度、操作系統(tǒng)和CPU類型。3、請(qǐng)求正文這里POST方法會(huì)用到,主要分兩種,一種是普通文本的,格式如下:name1=value1&name2=value2……通過鍵值對(duì)的方式,以&符號(hào)分隔。另外一種是帶二進(jìn)制數(shù)據(jù)的,以boundary分隔。詳細(xì)內(nèi)容見HTTPPOST請(qǐng)求篇
Response響應(yīng)HTTP響應(yīng)也是由三個(gè)部分組成,分別是:狀態(tài)行、響應(yīng)頭,響應(yīng)正文1、狀態(tài)行格式如下:
HTTP-VersionStatus-CodeReason-PhraseCRLF
其中,HTTP-Version表示服務(wù)器HTTP協(xié)議的版本;Status-Code表示服務(wù)器發(fā)回的響應(yīng)狀態(tài)代碼;Reason-Phrase表示狀態(tài)代碼的文本描述。
狀態(tài)代碼有三位數(shù)字組成,第一個(gè)數(shù)字定義了響應(yīng)的類別,且有五種可能取值:
1xx:指示信息--表示請(qǐng)求已接收,繼續(xù)處理
2xx:成功--表示請(qǐng)求已被成功接收、理解、接受
3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶端錯(cuò)誤--請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求
常見狀態(tài)代碼、狀態(tài)描述、說明:
200OK//客戶端請(qǐng)求成功
400BadRequest//客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解
403Forbidden//服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)
404NotFound//請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的URL
500InternalServerError//服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
503ServerUnavailable//服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求。2、響應(yīng)頭:Allow
服務(wù)器支持哪些請(qǐng)求方法(如GET、POST等)。Content-Encoding
文檔的編碼(Encode)方法。只有在解碼之后才可以得到Content-Type頭指定的內(nèi)容類型。利用gzip壓縮文檔能夠顯著地減少HTML文檔的下載時(shí)間。Java的GZIPOutputStream可以很方便地進(jìn)行g(shù)zip壓縮,但只有Unix上的Netscape和Windows上的IE4、IE5才支持它。
Content-Length
表示內(nèi)容長度。只有當(dāng)瀏覽器使用持久HTTP連接時(shí)才需要這個(gè)數(shù)據(jù)。
Content-Type
表示后面的文檔屬于什么MIME類型。Servlet默認(rèn)為text/plain,但通常需要顯式地指定為text/html。Set-Cookie
設(shè)置client中cookie內(nèi)容,重要的交互手段之一。
Date
當(dāng)前的GMT時(shí)間。你可以用setDateHeader來設(shè)置這個(gè)頭以避免轉(zhuǎn)換時(shí)間格式的麻煩。
Expires
應(yīng)該在什么時(shí)候認(rèn)為文檔已經(jīng)過期,從而不再緩存它?
Last-Modified
文檔的最后改動(dòng)時(shí)間??蛻艨梢酝ㄟ^If-Modified-Since請(qǐng)求頭提供一個(gè)日期,該請(qǐng)求將被視為一個(gè)條件GET,只有改動(dòng)時(shí)間遲于指定時(shí)間的文檔才會(huì)返回,否則返回一個(gè)304(Not
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度汽車零部件技術(shù)交易與許可證協(xié)議3篇
- 環(huán)保與經(jīng)濟(jì)雙贏農(nóng)村住房墻材的可持續(xù)發(fā)展路徑
- 二零二五年度餐飲店食品安全監(jiān)督協(xié)議3篇
- 2025年度個(gè)人借款借條設(shè)計(jì)及法律風(fēng)險(xiǎn)防控合同3篇
- 2025年度個(gè)人股權(quán)代持解除條件及補(bǔ)償協(xié)議3篇
- 二零二五年度新能源汽車零部件銷售協(xié)議3篇
- 智能制造技術(shù)助力醫(yī)療設(shè)備升級(jí)換代
- 2025年度漁船買賣合同(含漁港租賃權(quán))3篇
- 二零二五年度彩鋼板生產(chǎn)廢棄物處理合同3篇
- 跨領(lǐng)域合作如何有效探索學(xué)生個(gè)性化學(xué)習(xí)路徑
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購 投標(biāo)方案(技術(shù)方案)
- 查干淖爾一號(hào)井環(huán)評(píng)
- 案卷評(píng)查培訓(xùn)課件模板
- 體檢中心分析報(bào)告
- 2024年江蘇省樣卷五年級(jí)數(shù)學(xué)上冊(cè)期末試卷及答案
- 波浪理論要點(diǎn)圖解完美版
- 金融交易數(shù)據(jù)分析與風(fēng)險(xiǎn)評(píng)估項(xiàng)目環(huán)境敏感性分析
- 牛頓環(huán)與劈尖實(shí)驗(yàn)論文
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)四 其他平臺(tái)載體的運(yùn)營方式
- 浙教版科學(xué)八年級(jí)下冊(cè)全冊(cè)課件
- 2022年中國止血材料行業(yè)概覽:發(fā)展現(xiàn)狀對(duì)比分析研究報(bào)告(摘要版) -頭豹
評(píng)論
0/150
提交評(píng)論