1.相關問題python
問題1: 客戶端訪問url到服務器,整個過程會經歷哪些nginx
問題2: 描述HTTPS和HTTP的區別web
問題3: HTTP協議的請求報文和響應報文格式編程
問題4: HTTP的狀態碼有哪些?瀏覽器
2.問題回答緩存
問題1:安全
按照TCP/IP的五層協議描述服務器
1.首先進行域名解析,域名解析具體過程以下:網絡
2.應用層:瀏覽器發起HTTP請求;併發
3.傳輸層:選擇傳輸協議,TCP或者UDP,TCP是可靠的傳輸控制協議,對HTTP請求進行封裝,加入了端口號等信息;提供端到端的鏈接
4.網絡層:經過IP協議將IP地址封裝爲IP數據報;經過路由傳輸到對端。而後此時會用到ARP協議,主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的全部主機,並接收返回消息,以此肯定目標的物理地址,找到目的MAC地址;
5.數據鏈路層:根據mac地址,創建鏈接
6.物理層:物理層傳輸010101的數據流
7.服務器響應請求並請求客戶端要的資源,傳回給客戶端;.斷開TCP鏈接,瀏覽器對頁面進行渲染呈現給客戶端。
問題2:
http協議:
https協議:
注:關於http版本的相關內容還待學習,主要是1.0/1.1/2.0版本之間的區別
問題3:
http請求報文:HTTP 請求報文由請求行、請求頭部、空行 和 請求包體 4 個部分組成,以下圖所示:
http響應報文:響應報文由狀態行、響應頭部、空行 和 響應包體 4 個部分組成,以下圖所示:
請求報文以及響應報文相關具體的應用,須要參考具體的項目或者是實例。
問題四:
狀態碼如200 OK,以3位數字和狀態緣由構成。數字中的第一位指定了響應級別,後兩位無分別。響應分別有5種。
每一個系列經常使用的code
2xx:200(get請求成功),201(post,put建立了一個資源),204(刪除一個資源,服務器刪除成功)
3xx:301(服務器永久移動,自動轉發到新的位置),302(服務器臨時移動,原服務器沒有永久移除)倆者的最大區別爲搜索引擎是否記錄
4xx:400(客戶端請求語法錯誤),403(服務器拒絕提供服務),404(客戶端引用了不存在的資源)
5xx:500(服務器錯誤,拒絕請求),503(服務器當前不能處理客戶請求,當前服務器不可用),504(請求超時,沒有到達網關)
500,503,504常見場景
500:常見場景爲編程語言語法錯誤,web腳本錯誤,高併發,打開文件數超過系統資源限制,通常解決思路爲查看服務器nginx,python的錯誤日誌,負載均衡,修復腳本錯誤
503:常見場景爲服務器沒法使用,通常爲服務器超載或者是停機維護,解決思路爲查看服務器系統資源或者肯定服務器開啓狀態
502,504:常見場景爲web服務器故障,程序進程不夠,通常解決思路爲查看nginx代理的問題,或者是nginx的conf配置相關
ok