1. HTTP是什么?
HTTP(超文本傳輸協議,HyperText Transfer Protocol)是一種用于從萬維網服務器傳輸超文本到本地瀏覽器的協議。它是無狀態的客戶端-服務器協議,通常在Web瀏覽器和Web服務器之間用于傳輸網頁、圖片、視頻等資源。HTTP是應用層協議,工作在OSI模型的第7層。
2. 網絡狀態碼(HTTP狀態碼)
HTTP狀態碼是服務器響應客戶端請求時返回的3位數字,用于表示響應的處理結果。常見的HTTP狀態碼包括:
- 1xx(信息性狀態碼):請求已被接受,繼續處理。
- 100 Continue
- 101 Switching Protocols
- 2xx(成功狀態碼):表示請求已被成功處理。
- 200 OK:請求成功并返回數據。
- 201 Created:請求成功并已創建資源。
- 204 No Content:請求成功,但無返回內容。
- 3xx(重定向狀態碼):表示需要客戶端進一步操作才能完成請求。
- 301 Moved Permanently:資源永久遷移到新位置。
- 302 Found:資源臨時遷移。
- 304 Not Modified:資源未修改,客戶端可以使用緩存。
- 4xx(客戶端錯誤狀態碼):表示客戶端的請求有錯誤,服務器無法處理。
- 400 Bad Request:請求無效。
- 401 Unauthorized:未經授權。
- 403 Forbidden:禁止訪問。
- 404 Not Found:請求的資源未找到。
- 5xx(服務器錯誤狀態碼):表示服務器在處理請求時發生了錯誤。
- 500 Internal Server Error:服務器內部錯誤。
- 502 Bad Gateway:無效的網關。
- 503 Service Unavailable:服務不可用。
3. GET和POST的區別
- GET:
- 用于獲取數據。
- 請求參數通過URL傳遞,參數會顯示在瀏覽器地址欄中。
- 一般用于請求數據,不對服務器數據進行修改。
- 有長度限制(URL長度限制,通常在2K以內)。
- 數據傳輸不安全,因為參數暴露在URL中。
- 是冪等的,多次相同請求結果相同。
- POST:
- 用于提交數據。
- 請求參數通過請求體傳遞,不顯示在瀏覽器地址欄中。
- 一般用于向服務器提交數據,可能會改變服務器數據(例如,創建、更新資源)。
- 沒有長度限制。
- 數據傳輸相對較安全,但仍然可能會暴露在請求中(建議通過HTTPS加密)。
- 不是冪等的,重復提交可能會有不同結果。