- 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傳輸
-
透過cookie直接傳輸
-
當cookie被禁用時,透過url重寫實現傳輸session
eg:http://www.ctf-wiki.com/test;sessionid=XXXXXXXX
-
表單隱藏欄位
- 不是很懂