網(wǎng)絡(luò)協(xié)議手冊(cè)-HTTP基礎(chǔ)_第1頁
網(wǎng)絡(luò)協(xié)議手冊(cè)-HTTP基礎(chǔ)_第2頁
網(wǎng)絡(luò)協(xié)議手冊(cè)-HTTP基礎(chǔ)_第3頁
網(wǎng)絡(luò)協(xié)議手冊(cè)-HTTP基礎(chǔ)_第4頁
網(wǎng)絡(luò)協(xié)議手冊(cè)-HTTP基礎(chǔ)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論