用Telnet发送HTTP请求
1.telnet google.com 80
2.Telnet窗口中按下“Ctrl+]”;然后,輸入“set localecho”命令,再連續按兩次回車鍵
3.輸入
GET?/?HTTP/1.1
Host:?www.sohu.com ? ? ? ?/*這句話可不要*/
/*另外你可以用網頁數據分析工具查看相應的輸入信息,如httpwatch*/?
再連續按兩次回車鍵,該命令表示向google索要首頁根文件,使用的協議是HTTP的1.1版本。
"200 OK"表示要求數據成功
"302"表示數據重定向
Connection: Keep-Alive?
=====================補充內容===============================?
HTTP狀態碼中定義了5大類Status codes,分別是:
Informational
意義:信息
范圍:1XX
100系列碼
從 100到199范圍的HTTP狀態碼是信息報告碼。
基于各種原因考慮,大多數情況下我們是很少看見這些代碼的。首先,如果一個瀏覽器嘗試訪問一個網站,而 網站返回這些代碼時,它們往往都不會顯示在屏幕上。它們只是瀏覽器使引用的內部碼。另外,這些代碼不常見的另外一個原因是起初HTTP標準不允許使用這一 范圍的狀態碼。就其本身而言,它們也一直沒有被廣泛地使用。
Successful
意義:成功
范圍:2XX
200系列碼
從 200到299范圍的狀態碼是操作成功代碼。
同樣的,在正常的Web上網中,你也很可能不曾在屏幕上看到這些代碼。相反的,這些代碼是在瀏覽器內部使用 的,用以確認操作成功確認和當前請求狀態。雖然這些代碼通常不顯示,但是有一些故障排除工具能夠讀到它們,就像和其它大多數的HTTP狀態碼一樣,它們在 錯誤診斷過程中是非常有用的。
Redirection
意義:重定向
范圍:3XX
300系列碼
從 300到399范圍的狀態碼是重定向代碼。
本質上,它們告訴Web瀏覽器必須執行其它一些操作以完成請求。基于這個命令的特點,它可以自動地執行,或者要 求額外的用戶輸入。比如,狀態碼301表示一個特定資源已經被永久地先移除,因此將來所有訪問該資源請求都應該定向到一個特定的URL上。
Client Error
意義:客戶端錯誤
范圍:4XX
400系列碼
在 400范圍的狀態碼是客戶端錯誤碼。這種類型的錯誤碼往往跟安全相關。
比如,如果一個客戶端嘗試訪問一個未授權訪問的資源,服務器就會返回一個狀態碼 401。類似地,如果客戶端嘗試訪問一個禁止的資源,在這種情況下客戶端的認證狀態是一樣的,那么服務器可能會返回一個狀態碼403,表示禁止對該資源進 行訪問。
如 果請求不正確或客戶端超時,400級錯誤碼也可能被返回。然而,有一個400級的代碼總是具有誤導性:404。雖然這個代碼在技術上被歸類為客戶端錯誤, 但是事實上它可以同時表示客戶端或服務器上的錯誤。但這個錯誤碼只是簡單地顯示為沒有找到請求的資源。當這個錯誤發生在客戶端時,它往往表示的是網絡連接 問題。在其他時候,這個錯誤的發生還可能是由于資源已從服務器上轉移或重命名而造成的。
Server Error
意義:服務器錯誤
范圍:5XX
500系列碼
500 級狀態碼表示的是服務器錯誤。
比如,如果Web服務器超時,它就會產生一個504錯誤。雖然,一個500級的錯誤往往表示的不是服務器的問題,而是在服務 器上運行的Web應用的問題。比如,我自己的個人網站是用ASP編寫的,它負責動態生成HTML網頁。在調試的過程中,有Bug的代碼總會導致我的Web 服務器返回HTTP狀態碼500,該代碼是一般表示內部服務器錯誤。這個代碼只是出現問題了,并且HTTP無法解決該問題。
給一些收藏于網絡上的常見的HTTP錯誤碼的具體含義 (出處已不詳)
HTTP Status codes english version
“100″ : Continue
“101″ : witching Protocols
“200″ : OK
“201″ : Created
“202″ : Accepted
“203″ : Non-Authoritative Information
“204″ : No Content
“205″ : Reset Content
“206″ : Partial Content
“300″ : Multiple Choices
“301″ : Moved Permanently
“302″ : Found
“303″ : See Other
“304″ : Not Modified
“305″ : Use Proxy
“307″ : Temporary Redirect
“400″ : Bad Request
“401″ : Unauthorized
“402″ : Payment Required
“403″ : Forbidden
“404″ : Not Found
“405″ : Method Not Allowed
“406″ : Not Acceptable
“407″ : Proxy Authentication Required
“408″ : Request Time-out
“409″ : Conflict
“410″ : Gone
“411″ : Length Required
“412″ : Precondition Failed
“413″ : Request Entity Too Large
“414″ : Request-URI Too Large
“415″ : Unsupported Media Type
“416″ : Requested range not satisfiable
“417″ : Expectation Failed
“500″ : Internal Server Error
“501″ : Not Implemented
“502″ : Bad Gateway
“503″ : Service Unavailable
“504″ : Gateway Time-out
“505″ : HTTP Version not supported
HTTP錯誤碼的具體含義中文版
1xx(臨時響應)
表示臨時響應并需要請求者繼續執行操作的狀態代碼。
代碼 說明
100 (繼續) 請求者應當繼續提出請求。 服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。
101 (切換協議) 請求者已要求服務器切換協議,服務器已確認并準備切換。
2xx (成功)
表示成功處理了請求的狀態代碼。
代碼 說明
200 (成功) 服務器已成功處理了請求。 通常,這表示服務器提供了請求的網頁。
201 (已創建) 請求成功并且服務器創建了新的資源。
202 (已接受) 服務器已接受請求,但尚未處理。
203 (非授權信息) 服務器已成功處理了請求,但返回的信息可能來自另一來源。
204 (無內容) 服務器成功處理了請求,但沒有返回任何內容。
205 (重置內容) 服務器成功處理了請求,但沒有返回任何內容。
206 (部分內容) 服務器成功處理了部分 GET 請求。
3xx (重定向)
表示要完成請求,需要進一步操作。 通常,這些狀態代碼用來重定向。
代碼 說明
300 (多種選擇) 針對請求,服務器可執行多種操作。 服務器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
302 (臨時移動) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。
304 (未修改) 自從上次請求后,請求的網頁未修改過。 服務器返回此響應時,不會返回網頁內容。
305 (使用代理) 請求者只能使用代理訪問請求的網頁。 如果服務器返回此響應,還表示請求者應使用代理。
307 (臨時重定向) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。
4xx(請求錯誤)
這些狀態代碼表示請求可能出錯,妨礙了服務器的處理。
代碼 說明
400 (錯誤請求) 服務器不理解請求的語法。
401 (未授權) 請求要求身份驗證。 對于需要登錄的網頁,服務器可能返回此響應。
403 (禁止) 服務器拒絕請求。
404 (未找到) 服務器找不到請求的網頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內容特性響應請求的網頁。
407 (需要代理授權) 此狀態代碼與 401(未授權)類似,但指定請求者應當授權使用代理。
408 (請求超時) 服務器等候請求時發生超時。
409 (沖突) 服務器在完成請求時發生沖突。 服務器必須在響應中包含有關沖突的信息。
410 (已刪除) 如果請求的資源已永久刪除,服務器就會返回此響應。
411 (需要有效長度) 服務器不接受不含有效內容長度標頭字段的請求。
412 (未滿足前提條件) 服務器未滿足請求者在請求中設置的其中一個前提條件。
413 (請求實體過大) 服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。
414 (請求的 URI 過長) 請求的 URI(通常為網址)過長,服務器無法處理。
415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。
416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會返回此狀態代碼。
417 (未滿足期望值) 服務器未滿足”期望”請求標頭字段的要求。
5xx(服務器錯誤)
這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤。 這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
代碼 說明
500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求。
501 (尚未實施) 服務器不具備完成請求的功能。 例如,服務器無法識別請求方法時可能會返回此代碼。
502 (錯誤網關) 服務器作為網關或代理,從上游服務器收到無效響應。
503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態。
504 (網關超時) 服務器作為網關或代理,但是沒有及時從上游服務器收到請求。
?505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協議版本。??
總結
以上是生活随笔為你收集整理的用Telnet发送HTTP请求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 干货 | 云计算时代携程的网络架构变迁
- 下一篇: 如何只用2GB内存从20/40/80亿个