python_面試題_HTTP基礎相關問題

1.相關問題python

問題1: 客戶端訪問url到服務器,整個過程會經歷哪些nginx

問題2: 描述HTTPS和HTTP的區別web

問題3: HTTP協議的請求報文和響應報文格式編程

問題4: HTTP的狀態碼有哪些?瀏覽器


2.問題回答緩存

問題1:安全

按照TCP/IP的五層協議描述服務器

1.首先進行域名解析,域名解析具體過程以下:網絡

  • 瀏覽器搜索本身的DNS緩存,緩存中維護一張域名與IP地址的對應表
  • 若沒有,則搜索操做系統的DNS緩存;
  • 若沒有,則操做系統將域名發送至本地域名服務器(遞歸查詢方式),本地域名服務器查詢本身的DNS緩存,查找成功則返回結果,不然,經過如下方式迭代查找:
    • 本地域名服務器向根域名服務器發起請求,根域名服務器返回com域的頂級域名服務器的地址;
    • 本地域名服務器向com域的頂級域名服務器發起請求,返回權限域名服務器地址;
    • 本地域名服務器向權限域名服務器發起請求,獲得IP地址;
  • 本地域名服務器將獲得的IP地址返回給操做系統,同時本身將IP地址緩存起來;
  • 操做系統將IP地址返回給瀏覽器,同時本身也將IP地址緩存起來;

2.應用層:瀏覽器發起HTTP請求;併發

3.傳輸層:選擇傳輸協議,TCP或者UDP,TCP是可靠的傳輸控制協議,對HTTP請求進行封裝,加入了端口號等信息;提供端到端的鏈接

4.網絡層:經過IP協議將IP地址封裝爲IP數據報;經過路由傳輸到對端。而後此時會用到ARP協議,主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的全部主機,並接收返回消息,以此肯定目標的物理地址,找到目的MAC地址;

5.數據鏈路層:根據mac地址,創建鏈接

6.物理層:物理層傳輸010101的數據流

7.服務器響應請求並請求客戶端要的資源,傳回給客戶端;.斷開TCP鏈接,瀏覽器對頁面進行渲染呈現給客戶端。


問題2:

http協議:

  1. 端口:TCP80端口
  2. 超文本傳輸協議,信息是明文傳輸
  3. 鏈接簡單,是基於無狀態的傳輸。

https協議:

  1. 端口:TCP443端口
  2. 具備安全協議的超文本傳輸協議,具備安全性的ssl加密傳輸協議,信息是密文傳輸
  3. 由ssl+http協議構建的可進行加密傳輸,身份認證的網絡協議
  4. https協議須要到ca機構申請ssl證書,免費證書較少,高級ssl證書需必定的費用

注:關於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

相關文章
相關標籤/搜索