TCP協(xié)議客戶端
TCP協(xié)議服務(wù)端
http請(qǐng)求中的常用頭(請(qǐng)求頭)的含義:
Accept:告訴服務(wù)器,客戶端支持的數(shù)據(jù)類型香嗓。
Accept-Charset:告訴服務(wù)器迅腔,客戶端采用的編碼。
Accept-Encoding:告訴服務(wù)器靠娱,客戶機(jī)支持的數(shù)據(jù)壓縮格式沧烈。
Accept-Language:告訴服務(wù)器,客戶機(jī)的語(yǔ)言環(huán)境像云。
Host:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器锌雀,想訪問(wèn)的主機(jī)名。
If-Modified-Since:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器迅诬,資源的緩存時(shí)間腋逆。
Referer:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器,它是從哪個(gè)資源來(lái)訪問(wèn)服務(wù)器的侈贷。(一般用于防盜鏈)
User-Agent:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器惩歉,客戶機(jī)的軟件環(huán)境。
Cookie:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器俏蛮,可以向服務(wù)器帶數(shù)據(jù)撑蚌。
Connection:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器,請(qǐng)求完后是關(guān)閉還是保持鏈接搏屑。
Date:客戶機(jī)通過(guò)這個(gè)頭告訴服務(wù)器争涌,客戶機(jī)當(dāng)前請(qǐng)求時(shí)間。
http請(qǐng)求中常用的響應(yīng)頭的含義:
Location:這個(gè)頭配合302狀態(tài)碼使用辣恋,告訴用戶端找誰(shuí)亮垫。
Server:服務(wù)器通過(guò)這個(gè)頭,告訴瀏覽器服務(wù)器的類型伟骨。
Content-Encoding:服務(wù)器通過(guò)這個(gè)頭饮潦,告訴瀏覽器數(shù)據(jù)采用的壓縮格式。
Content-Length:服務(wù)器通過(guò)這個(gè)頭底靠,告訴瀏覽器回送數(shù)據(jù)的長(zhǎng)度害晦。
Content-Language:服務(wù)器通過(guò)這個(gè)頭特铝,告訴服務(wù)器的語(yǔ)言環(huán)境暑中。
Content-Type:服務(wù)器通過(guò)這個(gè)頭壹瘟,回送數(shù)據(jù)的類型
Last-Modified:服務(wù)器通過(guò)這個(gè)頭,告訴瀏覽器當(dāng)前資源的緩存時(shí)間鳄逾。
Refresh:服務(wù)器通過(guò)這個(gè)頭稻轨,告訴瀏覽器隔多長(zhǎng)時(shí)間刷新一次。
Content-Disposition:服務(wù)器通過(guò)這個(gè)頭雕凹,告訴瀏覽器以下載的方式打開(kāi)數(shù)據(jù)殴俱。
Transfer-Encoding:服務(wù)器通過(guò)這個(gè)頭,告訴瀏覽器數(shù)據(jù)的傳送格式枚抵。
ETag:與緩存相關(guān)的頭线欲。
Expires:服務(wù)器通過(guò)這個(gè)頭,告訴瀏覽器把回送的數(shù)據(jù)緩存多長(zhǎng)時(shí)間汽摹。-1或0不緩存李丰。
Cache-Control和Pragma:服務(wù)器通過(guò)這個(gè)頭,也可以控制瀏覽器不緩存數(shù)據(jù)逼泣。
Connection:服務(wù)器通過(guò)這個(gè)頭趴泌,響應(yīng)完是保持鏈接還是關(guān)閉鏈接。
Date:告訴客戶機(jī)拉庶,返回響應(yīng)的時(shí)間嗜憔。
HTTP響應(yīng)碼及其含義
HTTP響應(yīng)碼由三位十進(jìn)制數(shù)字組成,它們出現(xiàn)在由HTTP服務(wù)器發(fā)送的響應(yīng)的第一行氏仗。?
HTTP響應(yīng)碼分五種類型吉捶,由它們的第一位數(shù)字表示:?
? ? ? ?1xx:信息,請(qǐng)求收到皆尔,繼續(xù)處理?
? ? ? ?2xx:成功帚稠,行為被成功地接受、理解和采納?
? ? ? ?3xx:重定向床佳,為了完成請(qǐng)求滋早,必須進(jìn)一步執(zhí)行的動(dòng)作?
? ? ? ?4xx:客戶端錯(cuò)誤,請(qǐng)求包含語(yǔ)法錯(cuò)誤或者請(qǐng)求無(wú)法實(shí)現(xiàn)?
? ? ? ?5xx:服務(wù)器錯(cuò)誤砌们,服務(wù)器不能實(shí)現(xiàn)一種明顯無(wú)效的請(qǐng)求
詳細(xì)說(shuō)明如下:
? ? ? ?100? Continue? 初始的請(qǐng)求已經(jīng)接受杆麸,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。(HTTP 1.1新)
? ? ? ?101? Switching Protocols? 服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議(HTTP 1.1新)
? ? ? ?200? OK? 一切正常浪感,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面昔头。
? ? ? ?201? Created? 服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL影兽。
? ? ? ?202? Accepted? 已經(jīng)接受請(qǐng)求揭斧,但處理尚未完成。
? ? ? ?203? Non-Authoritative Information? 文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確讹开,因?yàn)槭褂玫氖俏臋n的拷貝(HTTP 1.1新)盅视。
? ? ? ?204? No Content? 沒(méi)有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來(lái)的文檔旦万。如果用戶定期地刷新頁(yè)面闹击,而Servlet可以確定用戶文檔足夠新,這個(gè)狀態(tài)代碼是很有用的成艘。
? ? ? ?205? Reset Content? 沒(méi)有新的內(nèi)容赏半,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來(lái)強(qiáng)制瀏覽器清除表單輸入內(nèi)容(HTTP 1.1新)淆两。?
? ? ? ?206? Partial Content? 客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求断箫,服務(wù)器完成了它(HTTP 1.1新)。?
? ? ? ?300? Multiple Choices? 客戶請(qǐng)求的文檔可以在多個(gè)位置找到秋冰,這些位置已經(jīng)在返回的文檔內(nèi)列出瑰枫。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明丹莲。?
? ? ? ?301? Moved Permanently? 客戶請(qǐng)求的文檔在其他地方光坝,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問(wèn)新的URL甥材。
? ? ? ?302? Found? 類似于301盯另,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的洲赵。注意鸳惯,在HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“Moved Temporatily”。??出現(xiàn)該狀態(tài)代碼時(shí)叠萍,瀏覽器能夠自動(dòng)訪問(wèn)新的URL芝发,因此它是一個(gè)很有用的狀態(tài)代碼。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使用苛谷。例如辅鲸,如果瀏覽器錯(cuò)誤地請(qǐng)求http://host/~user(缺少了后面的斜杠),有的服務(wù)器返回301腹殿,有的則返回302独悴。嚴(yán)格地說(shuō),我們只能假定只有當(dāng)原來(lái)的請(qǐng)求是GET時(shí)瀏覽器才會(huì)自動(dòng)重定向锣尉。請(qǐng)參見(jiàn)307刻炒。?
? ? ? ?303? See Other? 類似于301/302,不同之處在于自沧,如果原來(lái)的請(qǐng)求是POST坟奥,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過(guò)GET提取(HTTP 1.1新)。
? ? ? ?304? Not Modified? 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)爱谁。服務(wù)器告訴客戶晒喷,原來(lái)緩沖的文檔還可以繼續(xù)使用。
? ? ? ?305? Use Proxy? 客戶請(qǐng)求的文檔應(yīng)該通過(guò)Location頭所指明的代理服務(wù)器提裙苄小(HTTP 1.1新)厨埋。
? ? ? ?307? Temporary Redirect? 和302(Found)相同邪媳。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)行重定向捐顷,即使原來(lái)的請(qǐng)求是POST,即使它實(shí)際上只能在POST請(qǐng)求的應(yīng)答是303時(shí) 才能重定向雨效。由于這個(gè)原因迅涮,HTTP 1.1新增了307,以便更加清除地區(qū)分幾個(gè)狀態(tài)代碼:當(dāng)出現(xiàn)303應(yīng)答時(shí)徽龟,瀏覽器可以跟隨重定向的GET和POST請(qǐng)求叮姑;如果是307應(yīng)答,則瀏覽器只 能跟隨對(duì)GET請(qǐng)求的重定向据悔。(HTTP 1.1新)
? ? ? ?400? Bad Request? 請(qǐng)求出現(xiàn)語(yǔ)法錯(cuò)誤传透。
? ? ? ?401? Unauthorized? 客戶試圖未經(jīng)授權(quán)訪問(wèn)受密碼保護(hù)的頁(yè)面。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate頭极颓,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框朱盐,然后在填寫(xiě)合適的Authorization頭后再次發(fā)出請(qǐng)求。
? ? ? ?403? Forbidden? 資源不可用菠隆。服務(wù)器理解客戶的請(qǐng)求兵琳,但拒絕處理它笋妥。通常由于服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致统阿。
? ? ? ?404? Not Found? 無(wú)法找到指定位置的資源。這也是一個(gè)常用的應(yīng)答炉擅。
? ? ? ?405? Method Not Allowed? 請(qǐng)求方法(GET破衔、POST清女、HEAD、Delete晰筛、PUT校仑、TRACE等)對(duì)指定的資源不適用。(HTTP 1.1新)
? ? ? ?406? Not Acceptable? 指定的資源已經(jīng)找到传惠,但它的MIME類型和客戶在Accpet頭中所指定的不兼容(HTTP 1.1新)迄沫。
? ? ? ?407? Proxy Authentication Required? 類似于401,表示客戶必須先經(jīng)過(guò)代理服務(wù)器的授權(quán)卦方。(HTTP 1.1新)
? ? ? ?408? Request Timeout? 在服務(wù)器許可的等待時(shí)間內(nèi)羊瘩,客戶一直沒(méi)有發(fā)出任何請(qǐng)求。客戶可以在以后重復(fù)同一請(qǐng)求尘吗。(HTTP 1.1新)
? ? ? ?409? Conflict? 通常和PUT請(qǐng)求有關(guān)逝她。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功睬捶。(HTTP 1.1新)
? ? ? ?410? Gone? 所請(qǐng)求的文檔已經(jīng)不再可用黔宛,而且服務(wù)器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于擒贸,返回407表示文檔永久地離開(kāi)了指定的位置臀晃,而404表示由于未知的原因文檔不可用。(HTTP 1.1新)
? ? ? ?411? Length Required? 服務(wù)器不能處理請(qǐng)求介劫,除非客戶發(fā)送一個(gè)Content-Length頭徽惋。(HTTP 1.1新)
? ? ? ?412? Precondition Failed? 請(qǐng)求頭中指定的一些前提條件失敗(HTTP 1.1新)座韵。
? ? ? ?413? Request Entity Too Large? 目標(biāo)文檔的大小超過(guò)服務(wù)器當(dāng)前愿意處理的大小险绘。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求,則應(yīng)該提供一個(gè)Retry-After頭(HTTP 1.1新)誉碴。
? ? ? ?414? Request URI Too Long? URI太長(zhǎng)(HTTP 1.1新)宦棺。
? ? ? ?416? Requested Range Not Satisfiable? 服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭。(HTTP 1.1新)
? ? ? ?500? Internal Server Error? 服務(wù)器遇到了意料不到的情況黔帕,不能完成客戶的請(qǐng)求代咸。
? ? ? ?501? Not Implemented? 服務(wù)器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能。例如蹬屹,客戶發(fā)出了一個(gè)服務(wù)器不支持的PUT請(qǐng)求侣背。
? ? ? ?502? Bad Gateway? 服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問(wèn)下一個(gè)服務(wù)器慨默,但該服務(wù)器返回了非法的應(yīng)答贩耐。
? ? ? ?503? Service Unavailable? 服務(wù)器由于維護(hù)或者負(fù)載過(guò)重未能應(yīng)答。例如厦取,Servlet可能在數(shù)據(jù)庫(kù)連接池已滿的情況下返回503潮太。服務(wù)器返回503時(shí)可以提供一個(gè)Retry-After頭。
? ? ? ?504? Gateway Timeout? 由作為代理或網(wǎng)關(guān)的服務(wù)器使用虾攻,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲得應(yīng)答铡买。(HTTP 1.1新)
? ? ? ?505? HTTP Version Not Supported? 服務(wù)器不支持請(qǐng)求中所指明的HTTP版本。(HTTP 1.1新)
下表顯示每個(gè)響應(yīng)碼及其含義:?
? ? ? ?100 => “HTTP/1.1 100 Continue” ????????//繼續(xù)?
? ? ? ?101 => “HTTP/1.1 101 Switching Protocols” ????????//分組交換協(xié)議?
? ? ? ?200 => “HTTP/1.1 200 OK” ????????//OK?
? ? ? ?201 => “HTTP/1.1 201 Created” ????????//被創(chuàng)建?
? ? ? ?202 => “HTTP/1.1 202 Accepted” ????????//被采納?
? ? ? ?203 => “HTTP/1.1 203 Non-Authoritative Information” //非授權(quán)信息?
? ? ? ?204 => “HTTP/1.1 204 No Content” //無(wú)內(nèi)容?
? ? ? ?205 => “HTTP/1.1 205 Reset Content” ????????//重置內(nèi)容?
? ? ? ?206 => “HTTP/1.1 206 Partial Content” //部分內(nèi)容?
? ? ? ?300 => “HTTP/1.1 300 Multiple Choices” //多選項(xiàng)?
? ? ? ?301 => “HTTP/1.1 301 Moved Permanently” //永久地傳送?
? ? ? ?302 => “HTTP/1.1 302 Found” ????????//找到?
? ? ? ?303 => “HTTP/1.1 303 See Other” //參見(jiàn)其他?
? ? ? ?304 => “HTTP/1.1 304 Not Modified” ????????//未改動(dòng)?
? ? ? ?305 => “HTTP/1.1 305 Use Proxy” //使用代理?
? ? ? ?307 => “HTTP/1.1 307 Temporary Redirect” //暫時(shí)重定向?
? ? ? ?400 => “HTTP/1.1 400 Bad Request” ????????//錯(cuò)誤請(qǐng)求?
? ? ? ?401 => “HTTP/1.1 401 Unauthorized” ????????//未授權(quán)?
? ? ? ?402 => “HTTP/1.1 402 Payment Required” //要求付費(fèi)?
? ? ? ?403 => “HTTP/1.1 403 Forbidden” //禁止?
? ? ? ?404 => “HTTP/1.1 404 Not Found” //未找到?
? ? ? ?405 => “HTTP/1.1 405 Method Not Allowed” //不允許的方法?
? ? ? ?406 => “HTTP/1.1 406 Not Acceptable” //不被采納?
? ? ? ?407 => “HTTP/1.1 407 Proxy Authentication Required” //要求代理授權(quán)?
? ? ? ?408 => “HTTP/1.1 408 Request Time-out” //請(qǐng)求超時(shí)?
? ? ? ?409 => “HTTP/1.1 409 Conflict” ????????//沖突?
? ? ? ?410 => “HTTP/1.1 410 Gone” ????????//過(guò)期的?
? ? ? ?411 => “HTTP/1.1 411 Length Required” //要求的長(zhǎng)度?
? ? ? ?412 => “HTTP/1.1 412 Precondition Failed” ????????//前提不成立?
? ? ? ?413 => “HTTP/1.1 413 Request Entity Too Large” //請(qǐng)求實(shí)例太大?
? ? ? ?414 => “HTTP/1.1 414 Request-URI Too Large” //請(qǐng)求URI太大?
? ? ? ?415 => “HTTP/1.1 415 Unsupported Media Type” //不支持的媒體類型?
? ? ? ?416 => “HTTP/1.1 416 Requested range not satisfiable” //無(wú)法滿足的請(qǐng)求范圍?
? ? ? ?417 => “HTTP/1.1 417 Expectation Failed” //失敗的預(yù)期?
? ? ? ?500 => “HTTP/1.1 500 Internal Server Error” //內(nèi)部服務(wù)器錯(cuò)誤?
? ? ? ?501 => “HTTP/1.1 501 Not Implemented” //未被使用?
? ? ? ?502 => “HTTP/1.1 502 Bad Gateway” ????????//網(wǎng)關(guān)錯(cuò)誤?
? ? ? ?503 => “HTTP/1.1 503 Service Unavailable” ????????//不可用的服務(wù)?
? ? ? ?504 => “HTTP/1.1 504 Gateway Time-out” //網(wǎng)關(guān)超時(shí)?
? ? ? ?505 => “HTTP/1.1 505″ ????//HTTP版本未被支持