å
³äºHTTPåè®®è§è以åç¶æç å¨å
¶ä¸çä½ç¨ï¼åè§ï¼è¯» HTTP åè®®ã åèé¾æ¥ï¼
http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%811xx
1xx表示请æ±å·²è¢«æ¥åï¼ä½éè¦åç»å¤çãä¾å¦ï¼
100ï¼Continueï¼
客æ·ç«¯åºç»§ç»åé请æ±ã
101ï¼Switching Protocolsï¼
éè¦åæ¢åè®®ï¼æå¡å¨éè¿çUpgradeååºå¤´å段éç¥å®¢æ·ç«¯ã
HTML5å¼å
¥çWebSocket便æ¯è¿æ ·å·¥ä½çãé¦å
客æ·ç«¯è¯·æ±websocketæå¨çURLï¼æå¡å¨è¿å101ï¼ç¶å便建ç«äºå
¨åå·¥çTCPè¿æ¥ã 注æUpgradeåConnection头å段å±äºHop-by-hopå段ï¼è®¾ç½®Websocket代çæ¶éè¦ç»§ç»è®¾ç½®è¿ä¸¤ä¸ªå段ï¼èä¸æ¯ç®åå°è½¬å请æ±ã
2xx
请æ±å·²æå被æå¡å¨æ¥æ¶ãç解ã并æ¥åã
200ï¼OKï¼
请æ±å·²æåï¼è¯·æ±æå¸æçååºå¤´ææ°æ®ä½å°éæ¤ååºè¿åã
201ï¼Createdï¼
请æ±å·²ç»è¢«å®ç°ï¼èä¸æä¸ä¸ªæ°çèµæºå·²ç»ä¾æ®è¯·æ±çéè¦èå建ãå¨RESTFulé£æ ¼çURL设计ä¸ï¼é常ç¨æ¥ååºPOST请æ±ã
202ï¼Acceptedï¼
æå¡å¨å·²æ¥å请æ±ï¼ä½å°æªå¤çãæ¯å¦POSTä¸ä¸ªèµæºåºå½è¿å201ï¼ä½ç±äºæ§è½åå æªè½ç«å³å建ï¼å¯ä»¥è¿å202ã
204ï¼No Contentï¼
æå¡å¨æåå¤çäºè¯·æ±ï¼ä½ä¸éè¦è¿åä»»ä½å®ä½å
容ï¼204ååºç¦æ¢å
å«ä»»ä½æ¶æ¯ä½ãæµè§å¨æ¶å°è¯¥ååºåä¸åºäº§çææ¡£è§å¾çååã
205ï¼Reset Contentï¼
æå¡å¨æåå¤çäºè¯·æ±ï¼ä½ä¸éè¦è¿åä»»ä½å®ä½å
容ï¼205ååºç¦æ¢å
å«ä»»ä½æ¶æ¯ä½ã ä¸204ä¸åçæ¯ï¼è¿åæ¤ç¶æç çååºè¦æ±è¯·æ±è
éç½®ææ¡£è§å¾ãæ¯å¦ç¨æ·ååæ交ä¸ä¸ªè¡¨åï¼è¿å205å页é¢éç½®ï¼ç¨æ·å¯ä»¥ç«å³å¡«åä¸ä¸ä¸ªè¡¨åã
206ï¼Partial Contentï¼
HTTPåè®®å
许åçä¼ è¾ã请æ±å¤´ä¸å
å«Rangeå段æ¶ï¼ååºéè¦åªè¿åRangeæå®çé£ä¸æ®µãååºä¸åºå
å«Content-Rangeæ¥æ示è¿åå
容çèå´ã
å
¶ä»
203ï¼Non-Authoritative Informationï¼
207ï¼Multi-Statusï¼
3xx
è¿ç±»ç¶æç 代表éè¦å®¢æ·ç«¯éåè¿ä¸æ¥çæä½æè½å®æ请æ±ãé常ï¼è¿äºç¶æç ç¨æ¥éå®åï¼ éå®åç®æ å¨æ¬æ¬¡ååºçLocation头å段ä¸ææã
301ï¼Moved Permanentlyï¼
被请æ±çèµæºå·²æ°¸ä¹
移å¨å°æ°ä½ç½®ï¼å¹¶ä¸å°æ¥ä»»ä½å¯¹æ¤èµæºçå¼ç¨é½åºè¯¥ä½¿ç¨æ¬ååºè¿åçè¥å¹²ä¸ªURIä¹ä¸ãå¦æ该请æ±ä¸æ¯GET/HEADï¼ æµè§å¨é常ä¼è¦æ±ç¨æ·ç¡®è®¤éå®åã
301é常ç¨äºç½ç«è¿ç§»æ¶ï¼æå¡å¨å¯¹æ§çURLè¿è¡301éå®åå°æ°çURLãè¿æ ·æç´¢å¼æå¯ä»¥æ£ç¡®å°æ´æ°åæç页é¢æåçä¿¡æ¯ã
302ï¼Foundï¼
请æ±çèµæºç°å¨ä¸´æ¶ä»ä¸åçURIååºè¯·æ±ãé¤éæå®äºCache-ControlæExpiresï¼å¦å该ååºä¸å¯ç¼åã
å¦æå½å请æ±éHEADæGETï¼æµè§å¨éåå¾ç¨æ·ç¡®è®¤ï¼åè¿è¡éå®åã
è¿å¾å¥½ç解ï¼å 为ä¸ä¸æåçäºååï¼æ¯å¦POST请æ±ä¸æ¯å¹ççã
303ï¼See Otherï¼
对åºå½å请æ±çååºå¯ä»¥å¨å¦ä¸ä¸ªURIä¸è¢«æ¾å°ï¼èä¸å®¢æ·ç«¯åºå½éç¨GETçæ¹å¼è®¿é®é£ä¸ªèµæºã è¿ä¸ªæ¹æ³çåå¨ä¸»è¦æ¯ä¸ºäºå
许ç±èæ¬æ¿æ´»çPOST请æ±è¾åºéå®åå°ä¸ä¸ªæ°çèµæºã 303ååºç¦æ¢è¢«ç¼åã
303ä¼ä½¿å¾æµè§å¨ç´æ¥GETé£ä¸ªèµæºï¼ä¸éç¨æ·åæãè¿æ¯Webåºç¨ä¸æ常è§çéå®åæ¹å¼ã
304ï¼Not Modifiedï¼
å¦æ客æ·ç«¯åéäºä¸ä¸ªå¸¦æ¡ä»¶çGET请æ±ä¸è¯¥è¯·æ±å·²è¢«å
许ï¼èææ¡£çå
容ï¼èªä¸æ¬¡è®¿é®ä»¥æ¥æè
æ ¹æ®è¯·æ±çæ¡ä»¶ï¼å¹¶æ²¡ææ¹åã 304ååºç¦æ¢å
å«æ¶æ¯ä½ã
304ååºä¹æ¯ä¸ç§ç¼åæºå¶ãWebæå¡å¨å¯¹éæèµæºæ件é常ä¼éåç¼åï¼å æ¤å¨Webå¼åä¸ä½ å¯ä»¥çå°å¤§éç304ååºã æå¡å¨ç»åºçç¸åºä¸é常ä¼å
å«Etagæ¥æ è¯èµæºIDï¼æ¯å¦ï¼
ETag: "686897696a7c876b7e"
客æ·ç«¯å¨ä¸æ¬¡è®¿é®åä¸URLæ¶ä¼è®¾ç½®å¤´å段If-None-Matchï¼è¿æ¯ä¸ä¸ªè¯·æ±æ¡ä»¶ï¼ï¼
If-None-Match: "686897696a7c876b7e"
æå¡å¨è¿åèµæºåä¼å¤æEtagæ¯å¦ä¸å®¢æ·ç«¯æä¾çIf-None-Matchå¹é
ï¼å¦æå¹é
å说æèµæºæªåçæ¹åï¼æ¤æ¶åºè¿å304.
å
¶ä»
300ï¼Multiple Choicesï¼
305ï¼Use Proxyï¼
307ï¼Temporary Redirectï¼
4xx
è¿ç±»çç¶æç 代表äºå®¢æ·ç«¯çèµ·æ¥å¯è½åçäºé误ï¼å¦¨ç¢äºæå¡å¨çå¤çã é¤éååºçæ¯ä¸ä¸ªHEAD请æ±ï¼å¦åæå¡å¨å°±åºè¯¥è¿åä¸ä¸ªè§£éå½åé误ç¶åµçå®ä½ã
400ï¼Bad Requestï¼
ç±äºå
å«è¯æ³é误ï¼å½å请æ±æ æ³è¢«æå¡å¨ç解ã400é常å¨æå¡å¨ç«¯è¡¨åéªè¯å¤±è´¥æ¶è¿åã
401ï¼Unauthorizedï¼
å½å请æ±éè¦ç¨æ·éªè¯ï¼ååºä¸ä¼å
å«ä¸ä¸ªWWW-Authenticateå段æ¥è¯¢é®ç¨æ·çææä¿¡æ¯ã
è客æ·ç«¯çä¸æ¬¡è¯·æ±éè¦æä¾å
å«Authorization头ç请æ±ã
HTTP Basic Authå°±æ¯è¿æ ·å®ç°çãå½æå¡å¨è¿å401æ¶æµè§å¨ä¼å¼¹åºçªå£ï¼
![][basic-auth]
è¾å
¥éªè¯ä¿¡æ¯å¹¶ç¹å»ç¡®å®ï¼æµè§å¨ä¼æ ¹æ®ä½ çè¾å
¥å¡«åAuthentication头并éæ°åé请æ±ã对äºBasic
Authçèµ·æ¥æ¯è¿æ ·çï¼
Authorization:Basic eWFuZ2p2bjp5YW5nanZuaGFydA==
403ï¼Forbiddenï¼
æå¡å¨å·²ç»ç解请æ±ï¼ä½æ¯æç»æ§è¡å®ãä¸401ååºä¸åçæ¯ï¼èº«ä»½éªè¯å¹¶ä¸è½æä¾ä»»ä½å¸®å©ã
403å401ä¸æ ·ï¼éè¦å¨ç¸åºæ¶æ¯ä½ä¸éè¦ç»åºåå ãé¤éæ¯ä¸ä¸ªHEAD请æ±ã
é常ç¨äºæå¡å¨å·²ç»ç¥éç¨æ·ç身份çæ
åµãæ¯å¦ä»è¯·æ±çCookieå¾å°çSessionä¸å¯ä»¥å¾ç¥å½åç¨æ·æ æè¿è¡è¯¥æä½ã é常çWebåºç¨ä¸ï¼å¯¹äº401çæ
åµåºå½éå®åè³ç»å½é¡µé¢ï¼403çæ
åµåºå½ç´æ¥åç¥é误ï¼è¿å±äºå端Bugï¼ã
404ï¼Not Foundï¼
è¿å¤ªå¸¸è§äºãå°±æ¯è¯·æ±æå¸æå¾å°çèµæºæªè¢«å¨æå¡å¨ä¸åç°ã
å½é常ç¨äºå½æå¡å¨ä¸æ³æ示å°åºä¸ºä½è¯·æ±è¢«æç»æ¶ï¼æ¯å¦åºå½è¿å500æ¶æå¡å¨ä¸æ¿éé²èªå·±çé误ã
405ï¼Method Not Allowedï¼
请æ±è¡ä¸æå®ç请æ±æ¹æ³ä¸è½è¢«ç¨äºè¯·æ±ç¸åºçèµæºã
å¨Webå¼åä¸é常æ¯å 为客æ·ç«¯åæå¡å¨çæ¹æ³ä¸ä¸è´ï¼æ¯å¦å®¢æ·ç«¯éè¿PUTæ¥ä¿®æ¹ä¸ä¸ªèµæºï¼èæå¡å¨æå®å®ç°ä¸ºPOSTæ¹æ³ã å¼åä¸ç»ä¸è§è就好äºã
413ï¼Request Entity Too Largeï¼
æå¡å¨æç»å¤çå½å请æ±ï¼å 为该请æ±æ交çå®ä½æ°æ®å¤§å°è¶
è¿äºæå¡å¨æ¿ææè
è½å¤å¤ççèå´ã
ä¸è¬çæå¡å¨é½ä¼è®¾ç½®HTTP请æ±æ¶æ¯ä½çæ大é¿åº¦ï¼å½ç¶è¿æ¯ä¸ç§é»æ¡æ»å»çæ段ã
ä¾å¦ä½ å¨ä½¿ç¨HTTPæ¹å¼æ¥è®¿é®Gitä»åºï¼å¦æä½ å¨ä»åºä¸å å
¥äºå¤§çäºè¿å¶æ件ï¼é常为ç®æ æ件æå¤åªä½æ件ï¼ï¼
å¨Pushæ¶æå¡å¨å¾å¯è½ä¼è¿å413é误ãå¦æåæ¢ä¸ºsshå议就ä¸ä¼æè¿æ ·çé®é¢äºï¼æå¡å¨åªè½éå¶æ´ä¸ªä»åºç大å°ã
414ï¼Request-URI Too Largeï¼
å½URI太é¿æ¶ï¼æå¡å¨å¯ä»¥è¿å414. å½HTTPå议并æªè§å®URIåºå½æå¤é¿ãè¿åå³äºæµè§å¨åæå¡å¨çè®¾ç½®ï¼ å¨æå¡å¨ä¸å½ç¶ä½ æ³è®¾ç½®å¤é¿é½å¯ä»¥ï¼ä½æ¯æµè§å¨æ¯ä½ å³å®ä¸äºçï¼èä¸ä¸åçååå¨éç¨ä¸åçé¿åº¦éå¶ï¼å¯ä»¥è®¤ä¸ºæççæ¯2Kï¼
The limit
is in MSIE and Safari about 2KB, in Opera about 4KB and in Firefox about
8KB, (255 bytes if we count very old browsers) .
å½ç¶URIé¿åº¦çè¿ä¸ç¹éå¶ä¼ä½¿å¾HTTP GETæ¹æ³çè½åæéï¼ä¸è½ä¼ è¾è¶
è¿2Kçæ°æ®ãå¦å¤å 为GETæ¹æ³çæææ°æ®é½ä½ç°å¨URIä¸ï¼ 对äºç¨æ·æ¯å¯è§çãè¿ä¸ç¹ä¸å¤ªå®å
¨ã
å
¶å®HTTP GETä¼ è¾æ°æ®ç论ä¸å¹¶ä¸æ¯POSTå®å
¨æ´å¤ï¼å 为POSTçEntity Bodyä¹æ¯ææä¼ è¾çãåªæ¯GETçæ°æ®ç¨æ·ç´æ¥å¯è§èå·²ã
å
¶ä»
402ï¼Payment Requiredï¼
406ï¼Not Acceptableï¼
407ï¼Proxy Authentication Requiredï¼
408ï¼Request Time-outï¼
409ï¼Conflictï¼
410ï¼Goneï¼
411ï¼Length Requiredï¼
412ï¼Precondition Failedï¼
415ï¼Unsupported Media Typeï¼
416ï¼Requested range not satisfiableï¼
417ï¼Expectation Failedï¼
5xx
è¿ç±»ç¶æç 代表äºæå¡å¨å¨å¤ç请æ±çè¿ç¨ä¸æé误æè
å¼å¸¸ç¶æåçï¼ä¹æå¯è½æ¯æå¡å¨æè¯å°ä»¥å½åç软硬件èµæºæ æ³å®æ对请æ±çå¤çã 并ä¸ååºæ¶æ¯ä½ä¸åºå½ç»åºçç±ï¼é¤éæ¯HEAD请æ±ã
500ï¼Internal Server Errorï¼
é常æ¯ä»£ç åºéï¼åå°Bugãä¸è¬çWebæå¡å¨é常ä¼ç»åºæåºå¼å¸¸çè°ç¨å æ ã ç¶èå¤æ°æå¡å¨å³ä½¿å¨ç产ç¯å¢ä¹ä¼æåºè°ç¨å æ ï¼è¿æ¾ç¶æ¯ä¸å®å
¨çã
502ï¼Bad Gatewayï¼
ä½ä¸ºç½å
³æè
代çå·¥ä½çæå¡å¨å°è¯æ§è¡è¯·æ±æ¶ï¼ä»ä¸æ¸¸æå¡å¨æ¥æ¶å°æ æçååºã
å¦æä½ å¨ç¨HTTP代çæ¥ç¿»å¢ï¼æè
ä½ é
ç½®äºnginxæ¥åå代çä½ çåºç¨ï¼ä½ å¯è½ä¼å¸¸å¸¸çå°å®ã
504ï¼Gateway Time-outï¼
ä½ä¸ºç½å
³æè
代çå·¥ä½çæå¡å¨å°è¯æ§è¡è¯·æ±æ¶ï¼æªè½åæ¶ä»ä¸æ¸¸æå¡å¨æ¶å°ååºã
注æä¸502çåºå«ï¼502æ¯æ¥æ¶å°äºæ æååºæ¯å¦Connection
Refusedï¼ 504æ¯ååºè¶
æ¶ï¼é常æ¯è¢«å¢äºã
å¾å¤å½å¤ç«ç¹é½ä¼ä½¿ç¨CDNæ¥Serveéææ件ï¼ä½æ大ä¸åå¢æäºä¸äºCDNã导è´è¿äºèµæºæ件ç请æ±ä¼ä¸ç´å¤äºPendingç¶æç´å°è¶
æ¶ã
表ç°ä¸ºæµè§å¨æ¾ç¤ºç©ºç½é¡µé¢ï¼é¿æ¶é´å¤äºçå¾
ç¶æãè¿æ¶å¨æ§å¶å°çå°HTMLå·²ç»è½½å
¥äºå°±å¯ä»¥ç¹å»åæ¢æé®äºï¼åæ¢è½½å
¥é£äºèµæºã
页é¢ä¼ç«å³æ¾ç¤ºåºæ¥ï¼è½ç¶æ ·å¼å交äºå¯è½æé®é¢ã
说å°è¿éæ³å槽GFWç®ç´æ²¡æè¡ä¸éå¾·ï¼å³ä½¿ä¸å
许æ们访é®ä¹è¿åä¸ä¸ªé误åï¼ä¸è¦è®©æµè§å¨ä¸ç´å¤äºçå¾
çç¶æã
å
¶ä»
501ï¼Not Implementedï¼
503ï¼Service Unavailableï¼
505ï¼HTTP Version not supportedï¼