html基礎標簽+Http請求

文章目錄

  • 目錄

    文章目錄

    前言

    一.網址組成

    二.HTTP協議解析

    Http 請求報文

    ?報文請求方法

    ?報文頭

    Cache-Control 常見緩存控制行為

    ?cookie 解析

    Http 響應報文

    ?常見狀態碼

    ?三.域名解析(DNS)

    DNS域名服務器分類

    遞歸查詢

    迭代查詢

    四.端口號

    五.路徑信息

    六.Https協議

    ?對稱加密算法

    非對稱加密算法

    總結


前言

? ? ? ? 我們想象一個場景,當我們在瀏覽器中輸入網址后,網頁會自動生成對應網頁且打開曾經登錄過的網站,發現無需重新登錄直接進入首頁,這是如何做到的呢?

? ? ? ? 其實,當們在瀏覽器輸入網址后瀏覽器會通過網址中域名解析出的IP地址訪問該網址對應的服務器;服務器收到瀏覽器發出的請求后,根據網址中包含的執行方法,路徑信息等信息返回相應的文本信息,最終瀏覽器解析服務器返回的信息從而生成對應的網頁!!!


一.網址組成

一個完整的網址(URL)通常包含以下部分:

  1. 協議(Protocol):表示訪問網頁時使用的通信協議,常見的有HTTP、HTTPS、FTP等。HTTP(超文本傳輸協議)是一種用于傳輸超文本的協議,是互聯網上應用最為廣泛的協議之一。HTTPS(安全超文本傳輸協議)是一種加密的HTTP協議,可以保證數據傳輸的安全性。FTP(文件傳輸協議)則是一種用于文件傳輸的協議。
  2. 域名(Domain Name):表示網站的名稱,是網站在互聯網上的唯一標識。域名由多個部分組成,包括主域名和子域名。例如,在www.example.com中,“www”是子域名,“example”是主域名,“.com”是頂級域名。域名也可以被視為一個IP地址的代稱,目的是為了便于記憶。
  3. 端口號(Port):表示用于訪問網站的端口號,默認為80。端口號的范圍是0~65535。
  4. 路徑(Path):表示網站上具體的文件或目錄路徑。路徑通常由多個目錄和文件名組成,用斜杠(/)分隔。例如,在www.baidu.com/news/index.html中,“news/index.html”就是路徑。
  5. 此外,一個完整的網址還可能包含查詢參數錨點。查詢參數用于向服務器發送額外的數據,通常以“?”開頭,后跟參數名和參數值。錨點則用于指定網頁內部的定位點,以“#”開頭,用于跳轉到網頁的特定位置。

二.HTTP協議解析

http協議詳解

??????HTTP協議(超文本傳輸協議)是用于從萬維網(WWW)服務器傳輸超文本到本地瀏覽器的傳輸協議。它是互聯網上應用最為廣泛的一種網絡協議。

  • ??工作原理:HTTP協議工作于客戶端-服務端架構上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端(即WEB服務器)發送所有請求。Web服務器根據接收到的請求后,向客戶端發送響應信息。
  • ?特點:HTTP協議具有簡單、靈活的特點。它基于TCP/IP協議,是一種無連接、無狀態的協議,每個請求都是獨立的,不依賴于之前的請求或響應。這意味著服務器不會跟蹤客戶端的狀態,每個請求都需要包含足夠的信息以供服務器處理。此外,HTTP協議還允許傳輸任意類型的數據對象,具有很好的擴展性。

點擊此處了解TCP協議

Http 請求報文

?一個完成的Http請求報文包含以下三個部分:請求行+請求頭+請求體

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

以下是對HTTP請求報文頭的一些常見字段的解析:

  1. Host:指定了請求的目標服務器的域名和端口號。這是HTTP/1.1規范中必須包含的字段,用于告訴服務器請求的目標地址。

  2. User-Agent:表示發出請求的客戶端類型,通常包括瀏覽器類型、版本、操作系統等信息。服務器可以根據User-Agent來定制響應內容,以適配不同的客戶端設備。

  3. Accept:告訴服務器客戶端能夠處理的媒體類型。這個字段可以包含多種媒體類型,并且可以通過質量因子(q-factor)來指定每種類型的優先級。

  4. Accept-Language:表示客戶端偏好的自然語言。這可以幫助服務器返回針對特定語言環境的本地化內容。

  5. Accept-Encoding:客戶端告訴服務器它支持的內容編碼方式,如gzip、deflate等。服務器可以根據這個字段來決定是否對響應內容進行壓縮。

  6. Accept-Charset:表示客戶端支持的字符集,如UTF-8、GBK等。這有助于服務器正確編碼響應內容。

  7. Connection:用于控制網絡連接的行為。常見的值有"close"(表示請求完成后關閉連接)和"keep-alive"(表示保持連接以便復用)。

  8. Cache-Control:用于控制緩存行為。客戶端可以通過這個字段來指定是否緩存請求的響應,以及緩存的有效期等。

  9. Authorization:當需要進行身份驗證時,客戶端會在這個字段中包含認證信息,如用戶名和密碼。

  10. Referer:表示發出請求的頁面的URL。這個字段通常用于跟蹤用戶訪問來源,也可以幫助服務器生成重定向或重寫的規則。

  11. Content-Type:在POST或PUT請求中,用于指定請求體的媒體類型。例如,在發送表單數據時,可能會使用application/x-www-form-urlencodedmultipart/form-data

  12. Content-Length:表示請求體的長度(以字節為單位)。這個字段對于服務器來說很重要,因為它知道需要讀取多少數據。

  13. Cookie:用于在客戶端和服務器之間傳遞會話信息。瀏覽器會在每個請求中自動包含之前收到的所有Cookie。

Cache-Control 常見緩存控制行為
Public 指示響應可被任何緩存區緩存;
Private 指示對于單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許服務器僅僅描述當用戶的部分響應消息,此響應消息對于其他用戶的請求無效;
no-cache 指示請求或響應消息不能緩存;
no-store 用于防止重要的信息被無意的發布。在請求消息中發送將使得請求和響應消息都不使用緩存;
max-age 指示客戶機可以接收生存期不大于指定時間(以秒為單位)的響應;
min-fresh 指示客戶機可以接收響應時間小于當前時間加上指定時間的響應;
max-stale 指示客戶機可以接收超出超時期間的響應消息。如果指定 max-stale 消息的值,那么客戶機可以接收超出超時期指定值之內的響應消息。
?cookie 解析

????????Cookie是HTTP協議的一種規范,它是服務器發送到用戶瀏覽器并保存在本地的一小段數據。每當客戶端(通常是瀏覽器)請求同一個網站時,它會發送之前接收并保存的Cookie信息到服務器。這些信息可以被服務器用來識別用戶身份、跟蹤會話狀態等。

Cookie中主要包含以下內容:

  1. 名稱(Name):Cookie的唯一標識符,用于標識和區分不同的Cookie。

  2. 值(Value):Cookie的具體數據,服務器發送到客戶端的實際數據,可以是任何類型的數據,通常以字符串形式存儲。

  3. 域名(Domain):指定哪些域名可以訪問該Cookie。通常,Cookie只能由創建它的域名下的網頁訪問。

  4. 路徑(Path):指定哪些路徑或頁面可以訪問該Cookie。只有路徑或子路徑下的頁面才能訪問該Cookie。

  5. 有效期/過期時間(Expires/Max-Age):指定Cookie何時過期。如果設置了過期時間,瀏覽器會將Cookie保存到硬盤上,并在過期時間之前發送該Cookie給服務器。否則,Cookie只在瀏覽器會話期間有效,關閉瀏覽器后會被刪除。

  6. 安全標志(Secure):如果設置了Secure屬性,那么Cookie只能通過HTTPS協議發送,不能通過HTTP協議發送,這有助于保護Cookie的安全。

  7. HttpOnly標志:如果設置了HttpOnly屬性,那么Cookie將無法通過客戶端腳本(如JavaScript)訪問,這有助于防止跨站腳本攻擊(XSS)。

Http 響應報文

一個完成的Http響應頭包含以下信息:響應行+響應頭+響應體

?常見狀態碼
1xx : 信息響應類,表示接收到請求并且繼續處理
2xx : 處理成功響應類,表示動作被成功接收、理解和接受
3xx : 重定向響應類,為了完成指定的動作,必須接受進一步處理
4xx : 客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行
5xx : 服務端錯誤,服務器不能正確執行一個正確的請求
100(繼續):請求者應當繼續提出請求。服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。
101(切換協議):請求者已要求服務器切換協議,服務器已確認并準備切換。200(成功):服務器已成功處理了請求。通常,這表示服務器提供了請求的網頁。
201(已創建):請求成功并且服務器創建了新的資源。
204(無內容):服務器成功處理了請求,但在返回的響應報文中不含實體的主體部分(沒有資源可以返回)。
206(部分內容):服務器成功處理了部分GET請求。301(永久移動):被請求的資源已永久移動到新位置。
302(臨時移動):請求的資源臨時從不同的URI響應請求,但請求者應繼續使用原有位置來進行以后的請求。
304(未修改):自從上次請求后,請求的網頁未修改過。400(錯誤請求):請求有語法錯誤或無法理解。
401(未授權):請求要求身份驗證。
403(禁止):服務器已經理解請求,但是拒絕執行它。
404(未找到):服務器無法找到被請求的頁面。500(內部服務器錯誤):服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。
503(服務不可用):服務器暫時處于超負載或正在進行停機維護,無法處理請求。

?三.域名解析(DNS)

DNS 域名解析是將域名(如www.example.com)轉換為對應的IP地址(如192.0.2.1)的過程。在這個過程中,涉及到兩種主要的查詢方式:遞歸查詢和迭代查詢。

DNS域名服務器分類

  • 根域名服務器:?主要負責解析互聯網最頂級的域名,如.com、.org、.net等。當用戶輸入一個網址時,當本地域名服務器向根域名服務器發出查詢請求時,路由器就把查詢請求報文轉發到離這個DNS客戶最近的一個根域名服務器,以獲取目標域名對應的IP地址。根域名服務器全球共13臺。
  • 頂級域名服務器:負責管理在該頂級域名服務器注冊的所有二級域名。例如,.com域名的頂級域名服務器負責管理所有以.com結尾的域名。也被稱為權威域名服務器
  • 權限域名服務器:這些域名服務器負責管理某個區的域名。每一個主機的域名都必須在某個權限域名服務器處注冊登記。因此權限域名服務器知道其管轄的域名與IP地址的映射關系。另外,權限域名服務器還知道其下級域名服務器的地址。
  • 本地域名服務器:。這些服務器主要服務于其所在區域內的用戶,提供快速的域名解析服務。當用戶在瀏覽器中輸入一個域名時,本地域名服務器會迅速將該域名解析為相應的IP地址,從而快速地完成網頁的加載。

遞歸查詢

遞歸查詢是客戶端向DNS服務器發送一個查詢請求,然后等待DNS服務器返回查詢結果。如果DNS服務器本地緩存中有對應的結果,則直接返回;如果沒有,它會向其他DNS服務器(如根服務器)發送查詢請求,并等待這些服務器返回結果。一旦獲取到結果,它會將這個結果返回給客戶端,并且可能會將結果緩存起來,以便未來對同樣的查詢請求能夠更快地響應。

迭代查詢

迭代查詢是客戶端向DNS服務器發送一個查詢請求,然后等待DNS服務器返回一個或多個可能包含答案的DNS服務器的地址。客戶端接著向這些服務器發送查詢請求,重復這個過程,直到找到答案或確定答案不存在。

?總結:遞歸查詢由本地域名服務器返回給主機域名對應的IP地址;迭代查詢由本地服務器返回給主機一個其它可能查詢到該域名的DNS服務器地址并由主機根據返回的地址自主訪問。

通常采用模式:從請求主機到本地域名服務器的查詢是遞歸查詢,而其余的查詢是迭代查詢。

四.端口號

當一個計算機上的應用程序或服務需要與其他計算機進行通信時,它會使用一個特定的端口號作為目標端口。接收方的計算機會根據目標端口號來確定將數據包傳送給哪個應用程序或服務。

五.路徑信息

URL中的路徑信息是指在主機名后面的部分,通常用來指定訪問服務器上特定資源的路徑。路徑信息的作用如下:

  1. 標識資源位置:路徑信息可以告訴服務器需要訪問的資源所在的具體路徑,服務器可以根據路徑信息來定位資源的存儲位置。

  2. 指定資源類型:路徑信息的擴展名可以指定要訪問的資源的類型,例如.html表示訪問HTML文件,.jpg表示訪問圖片文件等。

  3. 支持頁面跳轉:路徑信息可以用來實現頁面之間的跳轉,通過在URL中指定不同的路徑信息,可以直接訪問不同的頁面或資源。

  4. 支持動態生成內容:路徑信息可以用來傳遞參數,從而實現動態生成內容。服務器可以根據路徑信息中的參數來生成不同的內容或返回不同的數據。

六.Https協議

????????Http協議與Https最大的區別是Http協議是明文傳輸,Https協議是密文傳輸;當明文傳輸的報文被攔截后極易造成信息泄露!!!

?對稱加密算法

? ????????對稱加密算法是一種使用相同的密鑰進行加解密的算法,其加密和解密過程相互對稱。在對稱加密算法中,消息的發送方使用密鑰將明文轉化為密文,而消息的接收方則使用相同的密鑰將密文轉化回明文。

對稱加密算法的主要特點包括:

  1. 加密和解密使用相同的密鑰,因此速度較快。
  2. 密鑰的管理較為困難,需要確保密鑰的安全性。
  3. 對稱加密算法通常具有較高的加密強度,可以提供較高的安全性。
  4. 若公鑰在發送圖中被攔截會導致信息泄露。

非對稱加密算法

? ? 非對稱加密算法是一種使用不同的密鑰進行加密和解密的加密算法。它使用一對密鑰,包括公鑰和私鑰,其中公鑰用于加密數據,私鑰用于解密數據。

?總結:為防止對稱加密算法中客戶端公鑰在傳輸給服務端的過程中被竊取,通常使用非對稱加密算法來加密客戶端的公鑰,這樣即使服務端的公鑰被竊取,由于沒有服務端的私鑰所以無法解密從而獲得客戶端的公鑰;而客戶端與服務端之間的報文則使用對稱加密算法進行加密從而提高通訊效率。


總結

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716154.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第一篇【傳奇開心果系列】Python的自動化辦公庫技術點案例示例:深度解讀Pandas庫

傳奇開心果博文系列 系列博文目錄Python的自動化辦公庫技術點案例示例系列 博文目錄前言一、主要特點和功能介紹二、Series 示例代碼三、DataFrame示例代碼四、數據導入/導出示例代碼五、數據清洗示例代碼六、數據選擇和過濾示例代碼七、數據合并和連接示例代碼八、數據分組和聚…

Linux系統管理:虛擬機 Kali Linux 安裝

目錄 一、理論 1.Kali Linux 二、實驗 1.虛擬機Kali Linux安裝準備階段 2.安裝Kali Linux 2. Kali Linux 更換國內源 3. Kali Linux 設置固定IP 4. Kali Linux 開啟SSH遠程連接 5. MobaXterm遠程連接 Kali Linux 三、問題 1.apt 命令 取代哪些 apt-get命令 一、理論…

《OpenScene: 3D Scene Understanding with Open Vocabularies》閱讀筆記1

傳統的3D場景理解方法依賴于帶標簽的3D數據集,用于訓練一個模型以進行單一任務的監督學習。我們提出了OpenScene,一種替代方法,其中模型在CLIP特征空間中預測與文本和圖像像素共同嵌入的3D場景點的密集特征。這種零樣本方法實現了與任務無關的訓練和開放詞匯查詢。例如,為了…

Phoncent博客:探索AI寫作與編程的無限可能

Phoncent博客,一個名為Phoncent的創新AIGC博客網站,于2023年誕生。它的創始人是莊澤峰,一個自媒體人和個人站長,他在網絡營銷推廣領域有著豐富的經驗。莊澤峰深知人工智能技術在內容創作和編程領域的潛力和創造力,因此…

有趣的CSS - 閃爍的鴻星爾克文字招牌效果

大家好,我是 Just,這里是「設計師工作日常」,今天分享的是利用 animation 動畫實現一個閃爍的霓虹燈文字效果。 《有趣的css》系列最新實例通過公眾號「設計師工作日常」發布。 目錄 整體效果核心代碼html 代碼css 部分代碼 完整代碼如下html…

第十一屆藍橋杯省賽第二場C++ B組 / C組《成績統計》(c++)

1.題目說明 小藍給學生們組織了一場考試,卷面總分為100 分,每個學生的得分都是一個 0 到 100 的整數。 如果得分至少是 60 分,則稱為及格。 如果得分至少為 85 分,則稱為優秀。 請計算及格率和優秀率,用百分數表示…

使用Spark探索數據

需求分析 使用Spark來探索數據是一種高效處理大規模數據的方法,需要對數據進行加載、清洗和轉換,選擇合適的Spark組件進行數據處理和分析。需求分析包括確定數據分析的目的和問題、選擇合適的Spark應用程序和算法、優化數據處理流程和性能、可視化和解釋…

【嵌入式實踐】【芝麻】【設計篇-3】從0到1給電動車添加指紋鎖:項目整體規劃

0. 前言 該項目是基于stm32F103和指紋模塊做了一個通過指紋鎖控制電動車的小工具。支持添加指紋、刪除指紋,電動車進入P檔等待時計時,計時超過5min則自動鎖車,計時過程中按剎車可中斷P檔狀態,同時中斷鎖車計時。改項目我稱之為“芝…

Pycharm下如何生成exe軟件

第一步 下載pyinstaller pip install pyinstaller 對pyinstaller第二步 使用pyinstaller cmd切換到項目目錄執行命令:pyinstaller --add-data “./templates;templates” 入口文件名.py

【語音識別】- 幾個主流模型

文章目錄 1. Wav2Vec 2.02. Whisper2. WeNet1. Wav2Vec 2.0 由Facebook AI Research(FAIR)于2020年提出的在語音方向里具有一定影響力的預訓練模型。 論文地址:https://arxiv.org/pdf/2006.11477.pdf 項目地址:https://github.com/pytorch/fairseq 訓練數據:62萬小時未…

基于Mahout實現K-Means聚類

需求分析 需要對數據集進行預處理,選擇合適的特征進行聚類分析,確定聚類的數量和初始中心點,調用Mahout提供的K-Means算法進行聚類計算,評估聚類結果的準確性和穩定性。同時,需要對Mahout的使用和參數調優進行深入學習…

頂會ICLR2024論文Time-LLM:基于大語言模型的時間序列預測

文青松 松鼠AI首席科學家、AI研究院負責人 美國佐治亞理工學院(Georgia Tech)電子與計算機工程博士,人工智能、決策智能和信號處理方向專家,在松鼠AI、阿里、Marvell等公司超10年的技術和管理經驗,近100篇文章發表在人工智能相關的頂會與頂刊…

Cloud整合Zookeeper代替Eureka

微服務間通信重構與服務治理筆記-CSDN博客 Zookeeper是一個分布式協調工具,可以實現注冊中心功能 安裝Zookeeper 隨便 就用最新版本吧 進入Zookeeper 包目錄 cd /usr/local/develop/ 解壓 tar -zxvf apache-zookeeper-3.9.1-bin.tar.gz -C /usr/local/develop 進入配置文件…

uniapp 獲取頁面來源

獲取當前頁面棧的實例,以數組形式按棧的順序給出,數組中的元素為頁面實例,第一個元素為首頁,最后一個元素為當前頁面。 let pages getCurrentPages(); if (pages.length > 1) { // 若頁面棧長度大于1則表示不止一個頁面被打開…

在 JavaScript 中用 var, let, 以及 const 有什么差別?什么時候該用哪個?

「在 JavaScript 中用 var, let, 以及 const 有什么差別?」是在前端、JavaScript 面試中常見的考題。在面試時可以先大方向地列點說出異同之處,然后再針對每一個點進行深入說明。以下是以第一人稱撰寫的參考擬答。 var, let, 以及 const 都是在 JavaScript 用來做變數宣告的…

前端導入導出

1、將后端excel二進制文件導出excel下載 import { read, utils, writeFileXLSX } from "xlsx";const useExportExcel (excelData: string, fileName: string) > {const wb read(excelData);const ws wb.Sheets[wb.SheetNames[0]];// 從工作表生成數據行const …

Android 將圖片網址url轉化為bitmap

1. 圖片網址url轉化為bitmap 1.1. 方法一 通過 HttpURLConnection 請求 要使用一個線程去訪問,因為是網絡請求,這是一個一步請求,不能直接返回獲取,要不然永遠為null,在這里得到BitMap之后記得使用Hanlder或者EventBu…

React之useState hook

實現useState js實現一個useState,簡單的原理就是賦值然后更新渲染,大概偽代碼如下: function useState(initValue) {let value initValue;function setValue(v) {if (typeof v "function") {value v(initValue);} else {value…

StarRocks實戰——首汽約車實時數倉實踐

目錄 前言 一、引入背景 二、OLAP引擎選型 三、架構演進 四、實時數倉構建 五、業務實踐價值未來規劃 原文大佬的這篇首汽約車實時數倉實踐有借鑒意義,這里摘抄下來用作學習和知識沉淀。 前言 首汽約車(以下簡稱“首約”)是首汽集團打造…

物體檢測-系列教程20:YOLOV5 源碼解析10 (Model類前向傳播、forward_once函數、_initialize_biases函數)

😎😎😎物體檢測-系列教程 總目錄 有任何問題歡迎在下面留言 本篇文章的代碼運行界面均在Pycharm中進行 本篇文章配套的代碼資源已經上傳 點我下載源碼 14、Model類 14.2 前向傳播 def forward(self, x, augmentFalse, profileFalse):if augm…