HTTP的請求方式都有哪些?
post、get、head、put、delete、options
安全:不應該引起Server端的任何狀態變化。
get、head、options
冪等:同一個方法執行多次和執行一次的效果完全相同。
可緩存:請求是否可以被緩存。
HTTP 中的GET和POST方式有什么區別?
GET:是冪等的,可緩存的、安全的
POST:是不冪等的,不可緩存的、不安全的
狀態碼:
1** 信息,服務器收到請求,需要請求者繼續執行操作
2** 成功,操作被成功接收并處理
3** 重定向,需要進一步的操作以完成請求
4** 客戶端錯誤,請求包含語法錯誤或無法完成請求
5** 服務器錯誤,服務器在處理請求的過程中發生了錯誤
HTTP連接建立流程
TCP三次握手:
客戶端向服務端發送SYN同步報文
服務端收到同步的報文之后或者說連接建立的報文之后返回客戶端ACK同步報文
客戶端收到之后 回應服務端一個ACK確認報文
TCP鏈接建立之后,進行HTTP的請求和相應
四次揮手:
客戶端發送終止報文FIN到服務端
服務端收到終止報文后回給客戶端一個ACK確認報文,此時客戶端到服務端的鏈接就已經斷開了,但是服務端到客戶端方向可能還會傳遞數據
服務端向客戶端發送一個FIN終止報文、ACK確認報文,然后由客戶端回給服務端一個確認報文ACK,完成四次揮手
HTTP的特點:
無連接
HTTP的持久連接
無狀態
Cookie / Session
Charles抓包原理是怎樣的?
利用了HTTP的中間人攻擊漏洞
HTTPS和HTTP有怎樣的區別?
HTTPS = HTTP + SSL/ TLS (應用層之下,傳輸層之上的中間層)
HTTPS是安全的HTTP
HTTPS連接的建立流程?
TCP/UDP
都是傳輸層協議
TCP :傳輸控制協議
UDP :用戶數據報協議
TCP為什么是三次握手?
解決同步報文超時重發的異常問題,不會建立多個連接
四次揮手
請簡述TCP的慢開始過程
DNS解析存在哪些常見問題?
1、DNS劫持問題
2、DNS解析轉發問題
DNS劫持與HTTP的關系是怎樣的?
沒有關系
DNS 解析發生在HTTP建立連接之前
DNS 解析請求使用UDP數據報,端口號53
怎么解決DNS劫持?
原有的DNS是使用DNS協議向DNS服務器的53端口進行請求
1、httpDNS:使用HTTP協議向DNS服務器的80端口進行請求
2、長連接
[圖片上傳中...(截屏2021-03-11 下午5.03.05.png-3cb6f9-1615453388970-0)]