
- 安全測試教程
- 安全測試 - 首頁
- 安全測試 - 概述
- 安全測試 - 流程
- 安全測試 - 惡意軟體
- HTTP協議基礎
- HTTPS協議基礎
- 編碼和解碼
- 安全測試 - 密碼學
- 安全測試 - 同源策略
- 安全測試 - Cookie
- 駭客攻擊Web應用程式
- 安全測試 - 注入攻擊
- 測試身份驗證漏洞
- 測試跨站指令碼攻擊
- 不安全的直接物件引用
- 測試安全配置錯誤
- 測試敏感資料洩露
- 缺少函式級訪問控制
- 跨站請求偽造
- 存在漏洞的元件
- 未驗證的重定向和轉發
- 安全測試 - Ajax安全
- 安全測試 - Web服務
- 安全測試 - 緩衝區溢位
- 安全測試 - 拒絕服務攻擊
- 測試惡意檔案執行
- 安全測試 - 自動化工具
- 安全測試有用資源
- 安全測試 - 快速指南
- 安全測試 - 有用資源
- 安全測試 - 討論
安全測試 - HTTP 訊息
HTTP訊息
HTTP基於客戶端-伺服器架構模型和無狀態請求/響應協議,透過在可靠的TCP/IP連線上交換訊息來執行。
HTTP“客戶端”是一個程式(Web瀏覽器或任何其他客戶端),它建立與伺服器的連線,以傳送一個或多個HTTP請求訊息。HTTP“伺服器”是一個程式(通常是Web伺服器,如Apache Web伺服器或Internet Information Services IIS等),它接受連線以透過傳送HTTP響應訊息來服務HTTP請求。
HTTP使用統一資源識別符號(URI)來標識給定的資源並建立連線。一旦建立連線,HTTP訊息就會以類似於網際網路郵件[RFC5322]和多用途網際網路郵件擴充套件(MIME)[RFC2045]中使用的格式傳遞。這些訊息由客戶端到伺服器的請求和伺服器到客戶端的響應組成,其格式如下:
HTTP-message = <Request> | <Response> ; HTTP/1.1 messages
HTTP請求和HTTP響應使用RFC 822的通用訊息格式來傳輸所需的資料。此通用訊息格式包含以下四個專案:
起始行
零個或多個報頭欄位,後跟CRLF
空行(即,在CRLF之前沒有任何內容的行),表示報頭欄位的結束
可選的訊息體
以下部分將解釋HTTP訊息中使用的每個實體。
訊息起始行
起始行將具有以下通用語法:
start-line = Request-Line | Status-Line
在分別討論HTTP請求和HTTP響應訊息時,我們將討論請求行和狀態行。現在讓我們看看請求和響應情況下起始行的示例:
GET /hello.htm HTTP/1.1 (This is Request-Line sent by the client) HTTP/1.1 200 OK (This is Status-Line sent by the server)
報頭欄位
HTTP報頭欄位提供關於請求或響應,或關於在訊息體中傳送的物件的必要資訊。HTTP訊息報頭有以下四種類型:
通用報頭 - 這些報頭欄位對請求和響應訊息都具有通用適用性。
請求報頭 - 這些報頭欄位僅適用於請求訊息。
響應報頭 - 這些報頭欄位僅適用於響應訊息。
實體報頭 - 這些報頭欄位定義關於實體體或(如果沒有主體存在)的元資訊。
所有上述報頭都遵循相同的通用格式,每個報頭欄位都包含一個名稱,後跟一個冒號 (:) 和欄位值,如下所示:
message-header = field-name ":" [ field-value ]
以下是各種報頭欄位的示例:
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain
訊息體
訊息體部分對於HTTP訊息是可選的,但如果可用,則用於攜帶與請求或響應關聯的實體體。如果關聯了實體體,則通常Content-Type和Content-Length報頭行指定關聯主體的性質。
訊息體是承載實際HTTP請求資料(包括表單資料和上傳等)和來自伺服器的HTTP響應資料(包括檔案、影像等)的部分。以下是訊息體的一個簡單內容:
<html> <body> <h1>Hello, World!</h1> </body> </html>