安全測試 - HTTP 響應



HTTP 響應

伺服器在接收和解釋請求訊息後,將返回一個 HTTP 響應訊息:

  • 狀態行

  • 零個或多個報頭(通用|響應|實體)欄位,後跟 CRLF

  • 空行(即,在 CRLF 之前沒有任何內容的行),表示報頭欄位的結束

  • 可選的訊息正文

以下部分解釋了 HTTP 訊息中使用的每個實體:

訊息狀態行

狀態行由協議版本、數字狀態碼及其關聯的文字短語組成。這些元素用空格 SP 字元分隔。

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

讓我們討論狀態行中提到的每個部分。

HTTP 版本

支援 HTTP 1.1 版本的伺服器將返回以下版本資訊:

HTTP-Version = HTTP/1.1

狀態碼

狀態碼元素是一個三位整數,其中狀態碼的第一位數字定義了響應的類別,後兩位數字沒有任何分類作用。第一位數字有五個值:

序號 值和描述
1

1xx:資訊性

這意味著請求已收到,正在繼續處理。

2

2xx:成功

這意味著操作已成功接收、理解和接受。

3

3xx:重定向

這意味著必須採取進一步的操作才能完成請求。

4

4xx:客戶端錯誤

這意味著請求包含錯誤的語法或無法完成。

5

5xx:伺服器錯誤

伺服器未能完成明顯有效的請求。

HTTP 狀態碼是可擴充套件的,HTTP 應用程式不需要理解所有已註冊狀態碼的含義。

響應報頭欄位

響應報頭欄位允許伺服器傳遞有關響應的附加資訊,這些資訊無法放置在狀態行中。這些報頭欄位提供有關伺服器以及進一步訪問由 Request-URI 標識的資源的資訊。

  • Accept-Ranges
  • Age
  • ETag
  • Location
  • Proxy-Authenticate
  • Retry-After
  • Server
  • Vary
  • WWW-Authenticate

如果您希望編寫自己的自定義 Web 客戶端和伺服器,則可以引入自定義欄位。

響應訊息示例

現在讓我們將所有內容組合在一起,形成從執行在 tutorialspoint.com 上的 Web 伺服器獲取hello.htm頁面的請求的 HTTP 響應。

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
   <body>
      <h1>Hello, World!</h1>
   </body>
</html>

以下是一個 HTTP 響應訊息示例,顯示當 Web 伺服器找不到請求的頁面時的錯誤情況:

HTTP/1.1 404 Not Found
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Connection: Closed
Content-Type: text/html; charset = iso-8859-1
   
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
   <head>
      <title>404 Not Found</title>
   </head>

   <body>
      <h1>Not Found</h1>
      <p>The requested URL /t.html was not found on this server.</p>
   </body>
</html>

以下是一個 HTTP 響應訊息示例,顯示當 Web 伺服器在給定的 HTTP 請求中遇到錯誤的 HTTP 版本時的錯誤情況:

HTTP/1.1 400 Bad Request
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Content-Type: text/html; charset = iso-8859-1
Connection: Closed
   
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
   <head>
      <title>400 Bad Request</title>
   </head>
   
   <body>
      <h1>Bad Request</h1>
      <p>Your browser sent a request that this server could not understand.<p>
      <p>The request line contained invalid characters following the protocol string.<p>
   </body>
</html>
http_protocol_basics.htm
廣告
© . All rights reserved.