HTTP(Hyper Text Transfer Protocol)相關知識

一、URL組成
<protocol>://<host>[:port]/[path][?query][#fragment]
  • protocol: URL協議,常見的有http,https,ftp等等
  • host: 主機名,即服務器名稱。DNS會將這個名稱解析爲具體IP地址
  • [:port] 端口號,一般省略使用默認端口,通常在開發和調試時纔會使用自定義端口
  • [path] URL路徑,指向服務器上的具體資源。
  • [?query] 查詢字符串,多個參數使用“&”分隔,查詢字符串發送給服務器,由服務器上的應用決定如何處理。
  • [#fragment] 錨部分,指明一個資源的特定位置,由瀏覽器處理。
二、媒體類型-Content Type
類型 描述 示例
text 普通文本 text/plain、text/html、text/javascript、text/css
image 圖片 image/gif、image/jpg、image/webp、image/bmp
audio 音頻 audio/ogg、audio/wav
video 視頻 video/ogg、video/webm
application 二進制數據等 application/json、application/xml、application/pdf
三、HTTP消息
  • 起始行(請求)/狀態行(響應):用於描述要執行的請求或對應的狀態。
    • 起始行
      • HTTP方法
      • 請求目標
      • HTTP版本
    • 狀態行
      • 協議版本
      • 狀態碼
      • 狀態文本
  • HTTP消息頭:請求或響應的相關屬性、配置、描述等
  • 空行:指明消息頭已經發送完畢
  • 消息正文(可以爲空):包含請求數據或響應中資源的表述
四、HTTP方法
方法 作用 安全性 冪等性
GET 獲取資源
POST 創建資源
PUT 更新指定資源
PATCH 部分更新資源
DELETE 刪除資源
HEAD 獲取資源,響應中沒有消息正文
OPTION 獲取指定資源所支持的操作
五、HTTP消息頭
  1. 常用請求頭
消息頭 說明
Accept 可接受的響應內容類型
Accept-Charset 可接受的字符集
Accept-Encoding 可接受的響應內容編碼方式
Accept-Language 可接受的響應內容語言列表
Authorization 協議中需要認證資源的認證信息
Cache-Control 是否使用緩存
Connection 客戶端連接類型
Cookie 向服務器提供Cookie
Content-Length 請求正文的長度
Content-Type 請求正文的MIME類型
Host 主機名及端口號
If-Match 僅當客戶端與服務器匹配時,才進行操作
If-Modified-Since 當請求資源未被修改時返回304狀態碼
If-None-Match 當請求資源未被修改時返回304狀態碼
If-Unmodified-Since 當資源自某個特定時間以來未被修改時才發送響應
Origin 發起跨域資源共享請求
User-Agent 瀏覽器身份標識
  1. 常用響應頭
消息頭 說明
Allow 指明資源支持的有效操作
Cache-Control 響應緩存機制
Connection 該連接預期選項
Content-Length 響應正文的長度
Content-Type 響應正文的MIME類型
Content-Encoding 響應正文的編碼類型
Content-Language 響應正文語言
ETag 資源當前狀態的標識符
Expires 指定時間,超過則認爲響應過期
Last-Modified 資源最後修改日期
Location 指向另一個URI,用於重定向和創建新資源時使用
Server 服務器名稱
Set-Cookie 設置Cookie
WWW-Authenticate 請求應使用的認證方式
六、狀態碼

HTTP響應狀態碼由3個數字組成,指明HTTP請求結果,可分爲5大類

  • 1xx:請求
  • 2xx: 成功
  • 3xx: 重定向
  • 4xx: 客戶端錯誤
  • 5xx: 服務端錯誤

常見狀態碼

狀態碼 名稱
200 OK
201 Created
204 No Content
304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
500 Internal Server Error
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章