HTTP協議的概念做用和特色

Web交互的基本流程

    請求:客戶端根據服務器地址把數據發送給服務器的過程叫請求。html

    相應:服務器將請求的處理結果發送給瀏覽器的過程叫響應。node

什麼是HTTP?面試

              概念:超文本傳輸協議。數據庫

HTTP有什麼做用?小程序

    做用:規範了瀏覽器和服務器的數據交互格式。微信小程序

HTTP有什麼特色?瀏覽器

              特色:簡單快捷,靈活,無鏈接,無狀態。緩存

HTTP1.1版本後支持可持續鏈接。

 

HTTP請求與服務器

客戶端與服務器:

    CS與BS  軟件使用方式上兩種劃分:

    客戶端,服務器架構Client/Server:

                特色:在服務器當中就主要是一個數據庫,把全部的業務邏輯以及界面都交給客戶端完成安全

                優勢:較爲安全,用戶界面豐富,用戶體驗好服務器

                缺點:每次升級都要從新安裝,針對於不一樣的操做系統開發,可移植性差

 

瀏覽器/服務器架構Browser/Server:

              特色:基於瀏覽器訪問的應用

                     把業務層交給服務器來完成,客戶端僅僅作界面的渲染和數據的交換

              優勢:只開發服務器端,能夠跨平臺,移植性很強

              缺點:安全性比較低,用戶體驗較差

 

Web資源

  什麼是Web?

              WEB網頁,它用於表示網絡主機上供外界訪問的資源.

 

  Web資源分類

            靜態Web資源

                     指Web頁面中供人們瀏覽的數據始終是不變.

            動態Web資源

                     指Web頁面中供人們瀏覽的數據是由程序產生的,不一樣時間點訪問Web頁面看到的內容各不相同.

Web資源存放在哪裏

              全部的Web資源都放在一個Web服務器當中

              Web服務器就是能夠供外界訪問Web資源的一個軟件

              Web資源放到指定的目錄當中,就能夠經過對應的端口在瀏覽器當中訪問到

URL地址

              協議://主機地址:端口號/資源地址

              http://www.it666.com:80/index.html

                    

域名資源訪問流程

    當咱們在瀏覽器當中訪問一個地址的時候,爲何就能看到一個頁面

BS結構流程圖

 

請求與響應

       請求:

              把客戶端請求發送給服務器

       響應:

              服務器把你要的數據發送給客戶端

 

       請求與響應都要必定的格式:

              約定好客戶端以什麼樣的格式把數據給服務器

              約定好服務器以什麼樣的格式把數據給客戶端

              這個約定使用的就是HTTP協議

客戶端

         瀏覽器

    Android程序

    IOS程序

    微信小程序

服務器

    PHP服務器

    Tomcat服務器

    nodeJS服務器

發送http請求方式

  http協議

    什麼是協議:

             約束雙方規範的一個準測

  什麼是HTTP協議

             HTTP 超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最爲普遍的一種網絡協議

             全部的WWW文件都必須遵照這個標準

             設計HTTP最初的目的是爲了提供一種發佈和接收HTML頁面的方法

             約束請求與響應的規則

HTTP組成部分

         請求

    響應

    請求與響應都是成對存在的

請求的發送方式

  1. 經過瀏覽器的地址欄
  2. 經過html當中的form表單
  3. 經過a連接的href
  4. src屬性

http請求

請求行和請求頭

  1.      請求行

    請求方式

           POST

           GET

 

請求的資源

       /Myxq/login.html?username=myxq&pwd=1234

 

協議版本

       HTTP/1.0,發送請求,建立一次鏈接,得到一個Web資源,鏈接斷開.

       HTTP/1.1,發送請求,建立一次鏈接,得到多個Web資源,保持鏈接.

  2.      請求頭

    請求頭是客戶端發送給服務器端的一些信息

    使用鍵值對錶示key : value

常見請求頭

     Referer.瀏覽器通知服務器,當前請求來自何處。若是是直接訪問,則不會有這個頭。經常使用於:防盜鏈
    If-Modified-Since.瀏覽器通知服務器,本地緩存的最後變動時間
    Cookie.用於存放瀏覽器緩存的cookie信息
    User-Agent. 瀏覽器通知服務器,客戶端瀏覽器與操做系統相關信忘
    Connection .保持鏈接狀態, Keep-Alive鏈接中, close已關閉
    Host.請求的服務器主機名
    Content-Length.請求體的長展
    Content-Type.若是是POST請求,會有這個頭,默認值爲application/x-www-form-urlencoded,表示請求體內容使用url編碼
    Accept.瀏覽器可支持的MIME類型,文件類型的一種描述方式。
    Accept-Encoding.瀏覽器通知服務器,瀏覽器支持的數據壓縮格式.如: GZIP壓縮 
    Accept-Language.瀏覽器通知服務器,瀏覽器支持的語

 

請求體

       當請求方式是POST時,請求體會有請求的參數

       若是請求方式爲get,那麼請求參數不會出如今請求體中,會拼接在url地址後面

 

http響應

響應行

       狀態碼

              200:請求成功

              302:請求重定向

              304:請求資源沒有改變,訪問本地緩存

              404:請求資源不存在,一般是用戶路徑編寫錯誤,也多是服務器資源已刪除.

              500:服務器內部錯誤.一般程序拋異常.

       其它狀態碼

              成功

              重定向

客戶方錯誤

              服務器錯誤

響應頭

       服務器端將信息以鍵值對的形式返回給客戶端

 

       常見請求頭

              Location:

                     指定響應的路徑,須要與狀態碼302配合使用,完成跳轉

              Content-Type:

                     響應正文的類型(MIME類型)

              Content-Disposition:

                     經過瀏覽器如下載方式解析正文

              Set-Cookie:

                     服務器向瀏覽器寫入cookie

              Content-Encoding:

                     服務器使用的壓縮格式

              Content-length:

                     響應正文的長度

              Refresh:

                     定時刷新

              Server:

                     服務器名稱,默認值:Apache-Coyote/1.1.能夠經過conf/server.xml配置進行修改

              Last-Modified:

                     服務器通知瀏覽器,文件的最後修改時間.

 

響應體

       響應體是服務器回寫給客戶端的頁面正文

       瀏覽器將正文加載到內存

       而後解析渲染顯示頁面內容

請求方式

8種請求類型

  1. 1.      OPTIONS

      返回服務器針對特定資源所支持的HTTP請求方法,也能夠利用向Web服務器發送’*’的請求來測試服務器的功能性

  1. 2.      HEAD

      請求指定的頁面信息,並返回頭部信息

  1. 3.      GET

      請求指定的頁面信息,並返回實體主體

  1. 4.      POST

      向指定資源提交數據進行處理請求

  1. 5.      PUT

      向指定資源位置上傳其最新內容

  1. 6.      DELETE

      請求服務器刪除Request-URL所標識的資源

  1. 7.      TRACE

      回顯服務器收到的請求,主要用於測試或診斷

  1. 8.      CONNECT

      HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器

經常使用兩種請求

面試可能問的************************

  GET

    GET方法向頁面請求發送參數

 

    地址和參數信息中間用?字符分隔http://www.it666.com/hello?key1 =value1&key2=value2

    查詢寧符串會顯示在地址欄的URL中,不安全,請不要使用GET請求提交敏感數據

 

    GET方法有大小限制:請求字符串中最多隻能有1024個字符

 

    GET請求可以被緩存

 

    GET請求會保存在瀏覽器的瀏覽記錄中

 

    能夠添加書籤

 

    編碼類型爲application/x-www-form-urlencoded

 

    只容許ASCII字符類型,不能用二進制流

 

    點擊刷新時,不會有反應

 

    GET請求主要用以獲取數據

  POST

    POST方法向頁面請求發送參數

 

    使用POST方法時,查詢字符串在POST信息中單獨存在,和HTTP請求一塊兒發送到服務器

 

    編碼類型爲:application/x-www-form-urlencoded or multipart/form-data.請爲二進制數據使

    用multipart編碼

 

    沒有歷史記錄

 

    參數類型沒有限制,能夠是字符串也能夠是二進制流

 

    數據不會顯示在地址欄中,也不會緩存下來或保存在瀏覽記錄中,因此

    看POST求情比GET請求安全,但也不是最安全的方式。如須要傳送敏

    感數據,請使用加密方式傳輸

 

    查詢字符串不會顯示在地址欄中

 

    Post傳輸的數據量大,能夠達到2M,而Get方法因爲受到URL長度限制,只能傳遞大約1024字節。

 

    Post就是爲了將數據傳送到服務器段,Get就是爲了從服務器段取得數據

相關文章
相關標籤/搜索