日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP基本原理

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP基本原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概念

超文本

超文本(hypertext)是一種含有特殊標記的文本文件,比如表示網頁的HTML源代碼、表示圖片的二進制數據。

URI、URL和URN

  • URI即統一資源標志符(Uniform Resource Identifier),用于標識某一互聯網資源名稱的字符串1
  • URL即統一資源定位系統(Uniform Resource Locator),用于指定信息位置的表示方法2
  • URN——已過時3

URL和URN組成URI,URL和URN是并集,關系圖4

URL格式

示例:https://www.baidu.com/s?wd=HTTP

標準格式:

[協議類型]://[服務器地址]:[端口號]/[資源層級UNIX文件路徑][文件名]?[查詢]#[片段ID]

完整格式:

[協議類型]://[訪問資源需要的憑證信息]@[服務器地址]:[端口號]/[資源層級UNIX文件路徑][文件名]?[查詢]#[片段ID]

協議類型

URL協議類型最常見的有http或https,其它諸如ftp、sftp、smb等協議。

  • HTTP既超文本傳輸協議(Hyper Text Transfer Protocol),用于從網絡傳輸超文本數據到本地瀏覽器的傳送協議。
    • HTTP協議是一個無狀態的協議,同一個客戶端的這次請求和上次請求是沒有對應關系。
    • HTTP的端口號為80。
  • HTTPS是以安全為目標的HTTP通道。
    • HTTPS在HTTP的基礎下加入SSL,提供了身份驗證與加密通訊方法。
    • HTTPS的端口號為443。

HTTP請求過程

簡單來說,請求過程就是客戶端向服務器進行request請求,服務器收到后進行處理然后response響應數據給瀏覽器,就完成了一次請求:

詳細過程

詳細過程能為工作中解決一些問題提供參考,面試時回答簡單過程即可。詳細過程不需要死記硬背,把它當成API類的存在即可。

當單擊某個超鏈接或者輸入訪問地址訪問時,HTTP的工作開始:

  • 觸發。如用戶點擊某個超鏈接,軟件啟動時發送的請求,用戶在地址欄訪問網址等等。
  • 解析。瀏覽器解析URL,得到協議類型、域名或服務器地址、資源地址。
  • DNS查詢。瀏覽器依次檢查緩存與Hosts文件,如果沒有,則向DNS服務器請求目標服務器的IP地址。
  • 握手。瀏覽器向服務器發起TCP的連接請求,TCP經過3次握手以后建立連接。
  • 請求。建立連接后,瀏覽器發送一個HTTP請求給服務器。
  • 響應。服務器處理完后響應HTTP,返回數據給html。
  • 請求Request

    請求行

    請求行由請求方法、請求地址URL和HTTP協議版本組成,用空格分割。

    • 請求地址就是URL。
    • 協議版本的格式為:HTTP/主版本號.次版本號。常用的有HTTP/1.0和HTTP/1.1。

    請求方法

    方法描述備注
    GET請求指定的頁面信息,并返回實體主體。常見
    POST向指定資源提交數據進行處理請求。數據被包含在請求體中(例如提交表單或者上傳文件)常見
    PUT從客戶端向服務器傳送的數據取代指定的文檔的內容。一般
    DELETE請求服務器刪除指定的頁面。一般
    HEAD類似于GET請求,只不過返回的響應中沒有具體的內容,用于獲取報頭罕見
    CONNECTHTTP/1.1 協議中預留給能夠將連接改為管道方式的代理服務器。罕見
    OPTIONS允許客戶端查看服務器的性能。罕見
    TRACE回顯服務器收到的請求,主要用于測試或診斷。罕見
    PATCH是對PUT方法的補充,用來對已知資源進行局部更新 。罕見

    請求頭

    名稱描述示例
    Accept指定客戶端可接受哪些類型的信息。application/json,*/*
    Accept-Language指定客戶端可接受的語言類型。zh-CN
    Accept-Encoding指定客戶端可接受的內容編碼。gzip, deflate, br
    Host用于指定請求資源的主機IP和端口號
    Cookie網站為了辨別用戶進行會話跟蹤而存儲在用戶本地的數據。
    Referer用來標識這個請求是從哪個頁面發過來的。如作來源統計、防盜鏈處理等
    User-Agent使服務器識別客戶使用的操作系統及版本、瀏覽器及版本等信息Mozilla/5.0…
    Content-Type聯網媒體類型(Internet Media Type)或者MIME類型text/plain;charset=UTF-8

    表格來源5

    請求體

    請求體是POST請求中的表單數據,而對于GET請求,請求體則為空。

    Content-Type提交數據的方式
    application/x-www-form-urlencoded表單數據
    multipart/form-data表單文件上傳
    application/json序列化JSON數據
    text/xmlXML數據

    響應Response

    可以分為三部分:響應狀態碼(Response Status Code)、響應頭(Response Headers)和響應體(Response Body)。

    響應狀態碼

    如200代表服務器正常響應,404代表頁面未找到,500代表服務器內部發生錯誤。

    響應頭

    名稱描述示例
    Date響應產生的時間。Mon, 08 Mar 2021 11:11:05 GMT
    Last-Modified指定資源的最后修改時間。Mon, 08 Mar 2021 09:51:35 GMT
    Content-Encoding指定響應內容的編碼。gzip
    Server包含服務器的信息,比如名稱、版本號等。openresty
    Content-Type文檔類型,指定返回的數據類型是什么text/html,application/x-javascript
    Set-Cookie設置Cookies
    Expires指定響應的過期時間

    響應體

    請求網頁時,響應體是HTML網頁。
    請求接口時,響應體可能是Json數據。

    Q&A

    常規問題:

  • 請簡述HTTP原理
  • 常見的協議類型有哪些
  • 請簡述HTTP和HTTPS,并說明它們的區別
  • 常見的請求方法有哪些
  • 細節了解:

  • 請求,也就是Request大概有些什么數據
  • 響應,也就是Response大概有些什么數據
  • 在你的記憶中請求頭有哪些東西
  • 請簡述請求體是什么
  • 在你的記憶中響應頭有哪些東西
  • 請簡述響應體是什么
  • 請簡述HTTP原理

    HTTP就是客戶端向服務器發送請求,服務器向客戶端發送響應數據的一個過程。它包含了請求Request和響應Respouse,請求Request包含了請求頭和請求體;請求頭比較常用的屬性是User-Agent和Content-Type,請求體是POST請求中的表單數據,而對于GET請求,請求體則為空。響應Respouse也包含了響應頭和響應體,比較常見的是Content-Type和Set-Cookie。

    請簡述HTTP和HTTPS,并說明它們的區別

    HTTP既是超文本傳輸協議,用于從網絡傳輸超文本數據到本地瀏覽器的協議。HTTPS是以安全為目標的HTTP通道,在其基礎上加入了證書機制進行加密。區別在于,一個有證書加密一個沒有證書,在安全上具有差異;端口上1也不同,HTTP是80端口,HTTP是443端口。

    思維導圖


    導圖鏈接

    參考

    • HTTP基本原理
    • 深入理解HTTP協議、HTTP協議原理分析
    • 一次完整的http請求過程是怎樣的?
    • HTTP請求的完全過程

  • URI ??

  • 統一資源定位系統 ??

  • 這一術語的使用已被限制更少的“URI”取代。WIKI ??

  • 統一資源標志符 ??

  • HTTP 請求方法 ??

  • 總結

    以上是生活随笔為你收集整理的HTTP基本原理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。