Web之http學習筆記

Sol_9發表於2024-06-19

目錄
  • HTTP
    • url
    • http請求
        • 請求行
          • 請求方法
        • 請求頭
        • 請求正文
    • http響應
      • 響應行
        • 狀態碼
      • 響應頭
      • 響應正文
  • Cookie
      • 定義:
      • 內容:
      • 用途:
      • 生命週期:
      • 隱私和安全性:
  • Session
    • 實現原理
      • 組成:
      • PHP中的Session設定函式
    • session傳輸

HTTP

http文字傳輸協議(HyperText Transfer Protocol) ,遵循請求/響應(request/response)模型

url

標準格式:協議://伺服器域名[:埠]/路徑/[?查詢]

  • 協議

    http or https

  • 伺服器域名

    也可以是ip

  • 並非必須,若省略則是預設80埠

  • 路徑

    目錄or檔案地址

  • 查詢

    從?開始,提供引數名和引數值

http請求

請求行

請求方法 描述
GET 請求頁面資訊
HEAD 返回響應行和響應頭,無響應正文
POST 向指定資料提交資料,可能導致新的資源建立和已有資源的修改
PUT 傳送資料,進行儲存和替換
DELETE 請求刪除頁面
CONNECT 將連線改為管道方式的代理伺服器
OPTIONS 檢視伺服器效能
TRACE 回顯伺服器請求,用於測試和診斷

請求方法 請求路徑 協議版本

請求方法

請求頭

包含許多有關客戶端環境和請求正文的有用資訊

Name Content
Host 伺服器域名 or ip
Cookie 使用者資訊
User-Agent 瀏覽器資訊
Accept 可接受的內容型別
Accept-Language 優先選擇的語言
..

請求正文

負載

http響應

響應行

協議 狀態碼 狀態訊息 eg:HTTP/1.1 200 OK

狀態碼

分類 分類描述
1XX 資訊,伺服器收到請求,需要繼續執行操作
2XX success
3XX 重定向,需要進一步操作完成請求
4XX 客戶端錯誤
5XX 伺服器錯誤

具體看

[RFC(英文)]

MDN(中文)

  • 200 成功:檔案存在。

  • 404 未找到:伺服器中不存在該檔案。

  • 301 永久移動:請求的網頁已永久移動到新位置,這是重定向到給定的URL。

  • 302 臨時移動:伺服器目前從不同位置的網頁響應請求。

  • 303 檢視其他位置:請求者應當對不同的位置使用單獨的GET請求來檢索響應時,伺服器返回此程式碼。

  • 401 未授權:訪問此檔案需要身份驗證,對於需要登入的網頁,伺服器可能返回此響應。

  • 403 禁止:請求有效但伺服器拒絕響應。

  • 429禁止:Too Many Requests超過了頻次限制

  • 500 伺服器內部錯誤:伺服器遇到錯誤,無法完成請求。

響應頭

不能放在響應行中的附加響應資訊相關伺服器的資訊對Request-URI所標識的資源進行下一步訪問的資訊

響應正文

Cookie

定義:

Cookie是由Web伺服器傳送到客戶端(通常是使用者的Web瀏覽器)的一小段資料。這個資料以鍵值對的形式儲存,並且每次客戶端發起HTTP請求時,瀏覽器會自動附帶已儲存的、與該特定網站相關的Cookie資訊傳送給伺服器。

內容:

Cookie的內容可以包含各種型別的資料,例如使用者ID、訪問過的網頁、購物車資訊、使用者設定等。由於安全性和隱私保護的原因,Cookie的大小有限制,且對於敏感資訊通常需要加密處理。

用途:

  • 會話管理:Cookie最常見的是用來維持使用者的會話狀態,比如在使用者登入後,伺服器透過設定一個包含使用者ID的Cookie來記住這個使用者已經登入,下次使用者訪問網站時,瀏覽器會自動帶上這個Cookie,伺服器就能識別出這是同一個使用者,從而保持其登入狀態。
  • 個性化服務:Cookie可以記錄使用者的偏好設定,如語言選擇、主題風格等,以便下次訪問時直接提供個性化的服務。
  • 追蹤行為:一些網站利用Cookie收集使用者在網站上的瀏覽歷史、點選行為等資料,用於分析使用者行為、最佳化網站功能或推送相關廣告。

生命週期:

Cookie有有效期,分為會話級別的Cookie(瀏覽器關閉即失效)和持久化Cookie(設定了過期時間,即使關閉瀏覽器也會在硬碟上保留,直到過期或被手動刪除)。

隱私和安全性:

由於Cookie可能涉及到使用者隱私資訊,因此現代瀏覽器都提供了控制Cookie的選項,使用者可以選擇接受所有Cookie、拒絕所有Cookie,或僅接受來自信任站點的Cookie。同時,開發者在設計和使用Cookie時也需要遵循相關的隱私政策和法律法規,確保使用者資料的安全。

Session

實現原理

組成:

  • session id 使用者的唯一標識,隨機生成

研究隨機

  • session file 儲存session,檔名稱:sess_Session_id

格式:sess_d3eom13a9r9pnfssaklnv

  • Session data 儲存序列化後的使用者資料

PHP中的Session設定函式

session傳輸

  1. 透過cookie直接傳輸

  2. 當cookie被禁用時,透過url重寫實現傳輸session

    eg:http://www.ctf-wiki.com/test;sessionid=XXXXXXXX

  3. 表單隱藏欄位

    • 不是很懂

相關文章