HTTP精簡教程二:簡單的HTTP協議

HTTP協議

HTTP協議和TCP/IP協議族內的其餘衆多協議相同,用於客戶端和服務器之間的通訊。
請求訪問資源的一端爲客戶端,響應資源的一端爲服務器。請求必須從客戶端發出,而服務器回覆響應,所以創建通訊是從客戶端開始的。html

請求報文

POST /index.htm HTTP/1.1
Host: hackr.jp
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 16
 
name=ueno&age=25

報文說明瀏覽器

  • 方法
POST
  • URI
/index.htm
  • 協議版本
HTTP/1.1
  • 請求首部字段
Host: hackr.jp
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 16
  • 內容實體
name=ueno&age=25

響應報文

HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 06:50:15 GMT
Content-Length: 363
Content-Type: text/html
 
<html>
...

報文說明安全

  • 協議版本
HTTP/1.1 200 OK
  • 狀態碼
200
  • 狀態碼的緣由短語
OK
  • 響應首部字段
Date: Tue, 10 Jul 2012 06:50:15 GMT
Content-Length: 363
Content-Type: text/html
  • 主體
<html>
...

HTTP是不保存狀態的協議

爲了更快的處理大量的事物,確保協議的伸縮性,所以把HTTP協議設爲無狀態協議;爲此,引入Cookie技術保存用戶的登錄狀態。服務器

HTTP請求方法

  • GET:獲取資源

GET方法用來請求訪問已被URI識別的資源。app

  • POST:傳輸實體主體

雖然GET方法和POST方法均可以用來傳輸實體,但通常不用GET方法。編碼

GET與POST的區別url

方法 GET POST
本質 索取數據 提交數據
安全性
執行效率
機制 將參數拼接在url上,明文傳輸 將表單內各個字段與其內容放置在HTML HEADER內一塊兒傳送到action屬性所指的URL地址
大小 取決於瀏覽器和系統 理論上沒有限制,取決於瀏覽器和系統
地址欄輸入 支持 不支持
瀏覽器歷史記錄 保留參數 參數不保留
編碼方式 url編碼 多種編碼方式
  • PUT:傳輸文件

PUT方法用來傳輸文件,相似FTP協議文件上傳,請求的報文中包含文件內容,而後保存在URI指定位置。
可是HTTP/1.1的PUT方法不帶驗證機制,任何人都能上傳文件,存在安全性問題,慎用。代理

  • HEAD:獲取報文首部

相似GET方法,區別在於只返回報文首部,不返回報文主體。code

  • DELETE:刪除文件

與PUT方法相反,用來刪除文件,DELETE方法按請求URI刪除指定資源。
可是HTTP/1.1的DELETE方法一樣不帶驗證機制,存在安全性問題,慎用。
區別orm

  • OPTIONS:詢問支持方法

返回服務器支持的方法

  • TRACE:追蹤路徑
  • CONNECT:要求用隧道協議鏈接代理

持久鏈接

旨在創建1次TCP鏈接後進行屢次請求和響應的交互,在HTTP/1.1中默認都是持久鏈接

相關文章
相關標籤/搜索