一、查缺補漏
1. Wireshark 抓報文
2. 要學習的所有部落格:
http://testingpai.com/member/haili/articles
二、OSI模型
1. 物理層
2. 資料鏈路層
3. 網路層
4. 傳輸層:TCP(靠譜的傳輸協議,傳輸有限)
UDP(廣播協議會丟包,不是很靠譜,但是可以傳輸很大的內容,如影片)
5. 會話層
6. 表示層
7. 應用層:HTTP(S)、FTP、DNS(域名解析),應用層跑在傳輸層之上
TCP報文詳解:http://testingpai.com/article/1621601730160
三、HTTP協議(F12 網路裡看)
1. 網際網路
客戶端 服務端
瀏覽器、app、手機瀏覽器 前端服務(nginx) + 後端伺服器docker、uwsgi(python) + 閘道器服務(鑑權) + 業務服務
點瀏覽器會傳送一個請求(請求地址) <--> nginx(轉發請求、負載均衡)會很快,前端直接返回 <--> 傳送到對應的服務
2. HTTP協議
a. 超文字傳輸協議,基於TCP之上的傳輸協議
b. TCP與HTTP區別:TCP理解為高速公路,HTTP理解為跑在高速公路上的汽車
c. HTTP 資料傳輸格式
json格式:Content-Type:application/json;charset=utf-8
form表單:Content-Type:application/x-www-form-urlencoded
multipart/form/data 傳輸檔案,上傳檔案使用
3. 請求型別
a. get:獲取資源
b. post:新增資源
c. put: 修改資源,不管是否部分修改,都要傳
d. patch: 修改資源,部分修改只需要傳修改的部分
e. delete: 刪除資源
f. head:檢視響應頭(檢視介面請求規範)
g. options:檢視該介面支援的請求方式
h. trace:檢視請求資料,自測
i. connect:HTTP/1.1協議預留的,將伺服器作為跳板,去訪問其他服務,再把請求到的資料給你,【代購】
4. HTTP組成
a. 請求頭 給服務端看的,和服務端互動
b. 請求體
c. 響應頭
d. 響應體
e. 提取資訊
i. 請求地址:Request URL: https://openapiv5.ketangpai.com/UserApi/login
ii. 請求型別:Request Method: POST
iii. 請求資料:{"email":"1605118090@qq.com","password":"Aa123456","remember":"0","code":"","mobile":"","type":"login","reqtimestamp":1627735085061}
iv. 資料格式:Content-Type: application/json;charset=UTF-8
v. 鑑權資訊:鑑權令牌(token更安全) OCR可以造假,就是要錢 鑑權樁mock
python mock 學會這幾招夠你用 10 年:http://testingpai.com/article/1624205968407
怎麼知道鑑權方式:
1) 直接去問開發
2) 自己窮舉
vi. requests
5. 響應狀態碼
a. 1xxxx:服務端已經收到了你的請求,需要客戶端繼續操作 101:切換更高的協議
b. 2xxx: 成功狀態碼:
i. 200:請求成功
ii. 201:post根據你發的資料,建立好了對應的資源
iii. 202:後端已經收到了,但是還沒處理完成
iv. 206:部分處理成功,一般是用於get請求,類似於下載電影的場景restful設計風格
c. 3xxx:重定向
i. 301:你請求的這個資源沒有了,返回給你另外一個資源的地址,瀏覽器拿著這個地址繼續請求
ii. 302:臨時移除
d. 4xxx:客戶端錯誤,找前端
i. 401:需要使用者認證授權
ii. 404:客戶端找的資源不存在,你客戶端請求錯誤了,地址錯誤
iii. 408:伺服器等待客戶端請求超時 客戶端超時是timeout
iv. 403:客戶端發的請求服務端收到了,但是拒絕執行,有可能是許可權問題、或者未實現的功能、黑名單
v. 402:保留資源,等待以後使用
e. 5xxx:服務端錯誤,找後端
i. 500:伺服器錯誤,無法完成請求,伺服器掛了
ii. 501:伺服器不支援這個請求功能,無法完成請求
iii. 502:閘道器返回的,閘道器伺服器透過另外的連結去其他伺服器去拿資料,然後再給你,他在拿資料的過程中訪問到的了一個無效響應,沒拿到資料
iv. 503:伺服器維護、或者超負荷運作,暫時無法處理客戶端的請求
v. 504:閘道器沒有及時從遠端服務拿到請求資料
vi. 跨域是跨域名訪問:瀏覽器同源策略導致的,要前端解決或者後端在setting裡改
6. HTTPS請求過程【面試】 http://testingpai.com/article/1621922748535
7. http 與 https的區別
a. http明文傳輸、https密文傳輸,相對安全
b. http埠:80,https:443
c. https有CA證照,要錢的
d. http無狀態的,https 是 ssl+http協議可以進行加密傳輸、身份認證
8. HTTPS+非對稱加密(RSA) 一般用https的都會有兩層加密
為什麼要加密:
a. 駭客攻擊,撞庫、DDOS、sql注入
b. 身份偽造
c. 獲取使用者敏感資訊
9. restful API設計風格
a. 傳統的介面設計:獲取幾個需要幾個介面
GET、POST /getUserInfo獲取所有使用者
GET /getUserInfoByid?id=1獲取某一個使用者
b. restful設計風格:相同的資料只需要一個介面
GET、POST /getUserInfo
/getUserInfo/12121?id=1
同種型別資料相當於後面加了where篩選select name,age,sex from table where id =1
四、TCP協議(參考連結中的內容,幾次握手)
http://testingpai.com/article/1621601730160
http://testingpai.com/article/1621669379653
五、一些知識點
1. requests庫使用
安裝:pip install requests
2. Post and Get
http://testingpai.com/article/1615615517987