PHP面試 PHP基礎知識 十(網絡協議)

網絡協議

    HTTP協議狀態碼

      狀態分爲五大類:1XX、2XX、3XX、4XX、5XX面試

        1XX:信息類狀態碼  表示接受請求正在處理跨域

        2XX:success 成功狀態碼  請求正常處理完畢瀏覽器

        3XX:重定向   須要進行附加操做完成請求緩存

        4XX:客戶端錯誤    服務器沒法處理請求安全

        5XX:服務器錯誤    服務器處理請求出錯服務器

     常見狀態碼:網絡

        200   成功   從客戶端發出的請求在服務器端正常處理併發

        204   服務器接收的請求已成功處理   但在返回的響應報文中不含實體的主體部分   (沒有內容)post

        206   客戶端進行了範圍請求   服務端成功執行了部分請求加密

        301   跳轉   永久性重定向   請求的資源已被分配了新的uri 之後請指向如今的uri

        302   臨時性重定向   請求資源被分配了臨時uri  這次訪問請指向新的uri

        303   因爲請求的資源存在另外一個uri  應使用get方法定向獲取資源

        304   客戶端發送附帶條件的請求 服務器端容許請求訪問資源  但因發生請求未知足條件的狀況

        307   臨時重定向  該狀態碼和302相同含義

        400   請求報文中存在語法錯誤

        401   發送的請求須要HTTP認證的認證信息

        403   對資源的訪問別服務器拒絕

        404   服務器沒法找到請求的資源

        500   服務器錯誤沒法完成請求

        503   服務器正處在超負載或者正在停機維護

    OSI七層模型

      物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層

        第一層:物理層

           創建、維護、斷開物理鏈接

        第二層:數據鏈路層

           創建邏輯鏈接、進行硬件地址尋址、差錯校驗等功能

        第三層:網絡層

           進行邏輯地址尋址,實現不一樣網絡之間的路徑選擇

        第四層:傳輸層

           定義傳輸數據的協議端口號,以及流控和差錯校驗

           協議:TCP/UDP,數據包一旦離開網卡即進入網絡傳輸層

        第五層:會話層

           創建、管理、終止會話

        第六層:表示層

           數據的表示、安全、壓縮

        第七層:應用層

           網絡服務與最終用戶的一個接口。

           協議:HTTP \ FTP \ TFTP \ SMTP \SNMP \ DNS \ TELNET \ HTTPS \ POP3 \ DHCP 

    HTTP協議工做特色和工做原理

      工做特色:基於B/S模式,通訊開銷小、簡單快速、傳輸成本低,使用靈活、可以使用超文本傳輸協議,節省傳輸時間,無狀態。

      工做原理:客戶端發送請求給服務器,建立一個TCP鏈接,指定端口號(默認80),鏈接到服務器,服務器監聽瀏覽器請求,一旦監聽到客戶端請求,分析請求類型,服務器會向客戶端返回狀態信息和數據內容。

    HTTP協議常見請求/響應頭和請求方法
       常見請求頭信息  

        Accept    告訴瀏覽器客戶端支持的數據類型

        User-Agent  告訴客戶機的軟件環境

        Cookie      能夠帶給服務器客戶端的數據

        Date        請求時間

        Referer         從哪一個資源訪問服務器  (經常使用於防盜鏈)

        Origin      用來講明最初請求是從哪裏發起的    (百度瞭解referer和origin的區別)

       常見響應頭信息

        Content-Type    告訴瀏覽器響應數據類型  

        Cache-Control    控制瀏覽器的緩存

        X-Forwarded-For     一個 HTTP 擴展頭部

        Access-Control-Allow-Origin   設置跨域頭    如 header("Access-Control-Allow-Origin:*"); 容許全部域名訪問

        Last-Modified   最後請求資源的響應時間

      

      請求方法

        GET  POST   HEAD   OPTIONS   PUT   DELETE   TRACE

        面試中常問的一個爲題:get和post請求方法的區別?

        post更安全(不會做爲url的一部分,不會被緩存、保存在服務器日誌、以及瀏覽器記錄中)

        post發送的數據量更大(get有url長度限制)

        post能發送更多的數據類型(get只能發送ASCII(gb2312)字符)

        post比get慢

        post是向服務器提交數據的一種請求,get是向服務器索取的一種請求

        get會將數據緩存起來

        POST請求過程:

          一、瀏覽器請求TCP鏈接(第一次握手)

          二、服務器答應進行TCP鏈接(第二次握手)

          三、瀏覽器確認,併發送post請求頭(第三次握手,這個報文比較小,因此HTTP會在此時進行第一次數據發送)

          四、服務器返回100 continue響應

          五、瀏覽器開始發送數據

          六、服務器返回200 🆗響應

        GET請求過程:

          一、瀏覽器請求TCP鏈接(第一次握手)

          二、服務器答應進行TCP鏈接(第二次握手)

          三、瀏覽器確認,併發送get請求頭和數據(第三次握手)

          四、瀏覽器返回200 🆗響應

    HTTPS協議工做原理

      HTTPS是一種基於SSL/TLS的HTTP協議,全部的HTTP數據都是在SSL/TLS協議封裝之上傳輸的。

      HTTPS協議在HTTP協議的基礎上,添加了SSL/TLS握手以及數據加密傳輸,也屬於應用層協議

    常見網絡協議及端口

      FTP   文件傳輸協議  端口:21

      Telnet   遠程登錄   端口:23

      SMTP  簡單郵件傳輸協議 端口:25

      POP3  接收郵件    端口:110

      HTTP  超文本傳輸協議  端口:80

      DNS   域名解析服務   端口:53

相關文章
相關標籤/搜索