[Linux] Web基礎知識與http協議

一、HTML

? ??1.1 HTML 的概念

HTML被稱為超文本標記語言。 它是規范和標準. 它通過標記符號來標記網頁中出現的各個部分。網頁文件本身就是一種文本文件。 通過向文本文件添加標記,您可以告訴瀏覽器如何顯示其中的內容。 HTML命令可以描述文本、圖形、動畫、聲音、表格、鏈接等。 HTML文件可以使用任何可以生成txt文件的文本編輯器進行編輯生成超文本標記語言文件,只需將文件名的后綴改為""即可。html"或"。"htm"就足夠了。

1.2 HTML的基本標簽

HTML標簽采用雙標記符的形式,前后標記符對應,分別表示標記開始和結束,標記符中間的內容被標簽描述。前標記符由“< XXX>”表示,結尾標記符多了一個“/”,由“< /XXX>”表示。

1.3 HTML的文件結構?

?HTML文件最外層由< html> < /html>表示,說明該文件是用HTML語言描述的。在它里面是并列的頭標簽(< head>)和內容標簽(< body>)。

格式:<html><head>網頁的頭部信息</head><body>網頁內容</body></html>
HTML的標簽
body外標簽作用
< title>定義了文檔的標題
< base>定義了頁面鏈接標簽的默認鏈接地址
< link>定義了一個文檔和外部資源之間的關系
< meta>定義了HTML文檔中的元數據
< script>定義了客戶端的腳本文件
< style>定義了HTML文檔的樣式文件
body內標簽作用
< table>定義一個表格
< tr>定義了表格中的一行
< td>定義了表格中某一行的一列
< img>定義了一個圖像
< a>定義了一個超鏈接
< p>定義了一行
< br>定義了換行
< font>定義了字體

二、靜態網頁和動態網頁

? 2.1 靜態網頁

????????在網站設計中,純HTML格式的網頁通常被稱為"靜態網頁"。 靜態網頁是帶有文件擴展名的標準HTML文件。htm,html。靜態網頁是網站結構的基礎。 早期的網站一般都是由靜態網頁構成的。

????????靜態網頁也有各種動態效果,如:動畫GIF格式、flash、滾動字幕等。這些"動態效果"是可視的,與我們將在下面介紹的動態網頁是不同的概念。

????????只要靜態網頁不改變代碼,它就不會改變,每天顯示的內容也是一樣的。靜態網頁只使用html語言,而不使用任何其他高級編程語言。

2.2 動態網頁

????????所謂動態網頁,是指與靜態網頁相反的一種web編程技術。對于靜態網頁來說,隨著HTML代碼的生成,除非改變了頁面代碼,否則頁面的內容和顯示效果基本不變。動態網頁的情況并非如此。 頁面代碼未更改,但顯示的內容可能會根據數據庫操作的時間、環境或結果而更改。

????????動態網頁URL的后綴不是.htm、.html、.shtml、.xml等靜態網頁的常見網頁制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式為后綴,并且在動態網頁網址中有一個標志性的符號——“?”。

????????動態網頁是由web編程技術生成的,它結合了Java、PHP、C#、數據庫編程等HTML以外的高級編程語言和數據庫技術,從這個意義上說,實現了對網站內容和風格的高效動態交互管理。 所做的一切。

三、http的相關知識?

3.1?http協議的介紹

HTTP協議采用了請求/響應模型。客戶端向服務器發送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶信息和內容的類似于MIME的消息結構。服務器以一個狀態行作為響應,響應的內容包括消息協議的版本,成功或者錯誤編碼加上服務器信息、實體元信息以及可能的實體內容。

HTTP 已經演化出了很多版本,它們中的大部分都是向下兼容的:

? ??http 1.0 ??相較以前版本可以支持POST、HEAD方法,支持HTML文件以外的其他類型,但不支持持久連接
? ?http?1.1 ? 支持持久連接,即在一個TCP連接里面完成多個http請求和響應,但是每個請求和響應是按照順序一一對應的
? http 2.0 ? 支持完全多路復用,即不光可以在在一個TCP連接里面完成多個http請求和響應,而且請求和響應不用按照順序一一對應。?( 也支持壓縮,服務端主動推送)
?? ?http 3.0 ? 基于UDP協議 ,最新版本還在初步推廣中

3.2 http的方法

HTTP 支持幾種不同的請求命令,這些命令被稱為 HTTP 方法(HTTP method)。每條 HTTP 請求報文都包含一個方法, 告訴服務器要執行什么動作,包括:獲取一個頁面,運行一個網關程序,刪除一個文件等。最常用的獲取資源的方法是 GET、POST、PUT。

方法作用
GET對服務器資源獲取的簡單請求
PUT向服務器提交數據,以修改數據
POST用于發送包含用戶提交數據的請求
DELETE刪除服務器上的某些資源
HEAD請求頁面的首部,獲取資源的元信息
CONNECT用于ssl隧道的基于代理的請求
OPTIONS返回所有可用的方法,常用于跨域
TRACE追蹤 請求--響應的傳輸路徑

1、GET請求會向數據庫發索取數據的請求,從而來獲取信息,該請求不會產生副作用。無論進行多少次操作,結果都是一樣的。

2、與GET不同的是,PUT請求是向服務器端發送數據的,從而改變信息,無論進行多少次PUT操作,其結果并沒有不同。

3、POST請求同PUT請求類似,都是向服務器端發送數據的,但是該請求會改變數據的種類等資源,幾乎目前所有的提交操作都是用POST請求的。

4、DELETE請求顧名思義,就是用來刪除某一個資源的。

3.3 GET與POST的比較

GET 方法

????????從指定的服務器上獲得數據

????????GET請求能被緩存

?????????GET請求會保存在瀏覽器的瀏覽紀錄里

????????GET請求有長度的限制

?????????主要用于獲取數據

?????????查詢的字符串會顯示在URL后綴中,不安全

POST 方法

?????????提交數據給指定服務器處理

?????????POST請求不能被緩存

?????????POST請求不會保存在瀏覽器的瀏覽紀錄里

?????????POST請求沒有長度限制

?????????查詢的字符串不會顯示在URL?

3.4 http狀態碼

HTTP 狀態碼(HTTP Status Code)是用以表示網頁服務器 HTTP 響應狀態的 3 位數字代碼,當瀏覽器請求某一 URL 時, 服務器根據處理情況返回相應的處理狀態。

通常正常的狀態碼為2xx,3xx(如200),如果出現異常會返回4xx,5xx(如404)。

狀態碼首位范圍含義
1xx100-101信息提示
2xx200-206成功
3xx300-305重定向
4xx400-415客戶端錯誤
5xx500-505服務器錯誤

? 常用狀態碼的具體含義:?

狀態碼含義
200一切正常
301永久重定向
302臨時重定向
401用戶名或密碼錯誤
403禁止訪問(客戶端IP地址被拒絕)
404請求的文件不存在
414請求URL頭部過長
500服務器內部錯誤。比如腳本錯誤,編程語言語法錯誤
502無效網關
503當前服務不可用。web服務器不能處理HTTP請求,可能是臨時超載或者是服務器進行停機維護。
504網關請求超時。程序執行時間過長導致響應超時,例如程序需要執行20秒,而nginx最大響應等待時間為10秒,這樣就會出現超時。

產生502(無效網關)的原因:

1、數據包沒有送到網卡,網絡問題;

2、數據包送進去了(交換機能抓到包),但是網卡沒收到,網卡問題或防火墻問題;

3、網卡接收到了,處理不了,服務問題。(比如服務器當前連接太多,響應太慢;頁面素材太多,帶寬不夠。)

3.5 http的請求過程

用戶在瀏覽器輸入URL訪問時,發起HTTP請求報文,請求中包括請求行、請求頭、請求體,服務器收到請求后返回響應報文,包括狀態行、響應頭、響應體。

請求消息的4個部分:

請求行:請求行由3部分組成:請求方法、URL和協議版本。

請求標頭:請求標頭為請求消息添加了一些附加信息,并由名稱和值之間用冒號分隔的"名稱/值"對組成。

空行:請求頭末尾的空行表示請求頭的結尾,后跟請求體。 這條線是非常重要和不可或缺的。

請求體:請求體是發送請求的參數。 GET方法已經在URL中指定了參數,因此在提交時沒有數據。POST方法發送的參數在請求體中。

請求頭描述
Host接受請求的服務器地址,可以是 IP:端口號 ,也可以是域名
User-Agent發送請求的應用程序名稱
Connection指定與連接相關的屬性,如Connection:Keep-Alive
Accept-Charset通知服務端可以發送的編碼格式
Accept-Encoding通知服務端可以發送的數據壓縮格式
Accept-Language通知服務端可以發送的語言

響應報文四部分:

狀態行:狀態行由協議版本、狀態碼、狀態碼描述3部分組成。

響應標頭:響應標頭類似于請求標頭,并向響應消息添加一些附加信息。

空行:響應頭的末尾有一個空行,用來表示響應頭的結尾。

響應體:從服務器返回的相應HTML數據被瀏覽器解析以顯示頁面。?

響應頭描述
Server服務器應用程序軟件的名稱和版本
Content-Type響應正文的類型(是圖片還是二進制字符串)
Content-Length響應正文長度
Content-Charset響應正文使用的編碼
Content-Encoding響應正文使用的數據壓縮格式
Content-Language響應正文使用的語言

3.6??HTTP訪問的過程

關于TCP的三次握手與四次揮手,請轉到以下博客

[網絡]傳輸層協議-CSDN博客

HTTP訪問的過程:

  1. 建立連接:客戶端發起與服務器的TCP連接,通過三次握手建立可靠的通信通道。

  2. 接收請求:服務器監聽到客戶端發起的TCP連接,并接收到HTTP請求報文。

  3. 處理請求:服務器解析HTTP請求報文,提取請求方法、路徑、頭部信息等。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 根據請求內容執行相應的服務器端處理,可能包括調用后端應用程序、查詢數據庫、讀取文件等。

  4. 訪問資源:服務器根據請求訪問相應的資源,如HTML文件、圖像、數據庫等。

  5. 構建響應報文:服務器生成HTTP響應報文,包括狀態碼、響應頭部和響應體。

  6. 發送響應報文:服務器通過之前建立的TCP連接將HTTP響應報文發送回客戶端。

  7. 記錄日志:服務器記錄訪問日志,包括客戶端IP地址、訪問時間、請求方法、請求路徑、HTTP狀態碼等信息。

1、客戶端通過域名進行訪問,先進行DNS域名解析。

2、之后客戶端請求與web服務器建立TCP連接(三次握手)。

3、建立連接后,客戶端向web服務器發送一個HTTP請求。

4、服務器響應HTTP請求,客戶端的瀏覽器得到HTML代碼。

5、瀏覽器解析HTML代碼,并請求HTML代碼中的資源。(瀏覽器拿到HTML文件后,開始解析HTML代碼,遇到靜態資源時,就向服務器去請求下載。)

6、斷開TCP連接(四次揮手),瀏覽器對頁面進行渲染呈現給用戶。

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

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

相關文章

講解把一個文件夾里面的內容復制到另一個文件夾中的操作

&#x1f38a;專欄【Java小練習】 &#x1f354;喜歡的詩句&#xff1a;天行健&#xff0c;君子以自強不息。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f354;需求?思路?代碼?效果 &#x1f384;如果要復制…

Vue3:表格單元格內容由:圖標+具體內容 構成

一、背景 在Vue3項目中&#xff0c;想讓單元格的內容是由 &#xff1a;圖標具體內容組成的&#xff0c;類似以下效果&#xff1a; 二、圖標 Element-Plus 可以在Element-Plus里面找是否有符合需求的圖標iconfont 如果Element-Plus里面沒有符合需求的&#xff0c;也可以在這…

MySQL 數據庫操作指南:LIMIT,OFFSET 和 JOIN 的使用

限制結果 您可以通過使用"LIMIT"語句來限制查詢返回的記錄數量。以下是一個示例&#xff0c;獲取您自己的Python服務器中"customers"表中的前5條記錄&#xff1a; import mysql.connectormydb mysql.connector.connect(host"localhost",user&…

Proteus仿真--基于NM24C08的EEPROM仿真設計

本文介紹基于NM24C08的EEPROM仿真設計&#xff08;完整仿真源文件及代碼見文末鏈接&#xff09; 其中NM24C08是標準的2線總線接口的串行EEPROM&#xff0c;開機畫面在LCD12864上顯示 仿真圖如下 仿真運行視頻 Proteus仿真--基于NM24C08的EEPROM仿真設計 附完整Proteus仿真資料…

零一萬物模型折騰筆記:官方 Yi-34B 模型基礎使用

當爭議和流量都消失后&#xff0c;或許現在是個合適的時間點&#xff0c;來拋開情緒、客觀的聊聊這個 34B 模型本身&#xff0c;尤其是實踐應用相關的一些細節。來近距離看看這個模型在各種實際使用場景中的真實表現和對硬件的性能要求。 或許&#xff0c;這會對也想在本地私有…

Docker本地部署Drupal內容管理框架并實現公網遠程訪問

文章目錄 前言1. Docker安裝Drupal2. 本地局域網訪問3 . Linux 安裝cpolar4. 配置Drupal公網訪問地址5. 公網遠程訪問Drupal6. 固定Drupal 公網地址7. 結語 前言 Dupal是一個強大的CMS&#xff0c;適用于各種不同的網站項目&#xff0c;從小型個人博客到大型企業級門戶網站。它…

bat腳本之findstr

findstr 是 Windows 操作系統中用于文本搜索的命令&#xff0c;它可以在文件中查找指定的字符串或正則表達式&#xff0c;并輸出匹配的行或行號。findstr 命令可以在命令提示符下直接使用&#xff0c;也可以在批處理腳本中嵌套使用。 以下是 findstr 命令的基本語法&#xff1…

使用條件格式突出顯示單元格數據-sdk

使用條件格式突出顯示單元格數據 2023 年 12 月 6 日 根據數據值將視覺提示應用于特定單元格、行或列&#xff0c;從而更輕松地識別模式和趨勢。 網格中的條件格式允許用戶根據單元格或范圍包含的數據將視覺樣式應用于單元格或范圍。它通過以數據驅動的方式突出顯示關鍵值、異常…

【基于Python的二手車數據可視化平臺的設計與實現】

基于Python的二手車數據可視化平臺的設計與實現 前言數據獲取與處理網絡爬蟲數據存儲 可視化平臺的設計與實現Flask框架數據可視化 創新點結語 前言 隨著社會的不斷發展&#xff0c;二手車市場也逐漸成為一個備受關注的領域。為了更好地為二手車的買家和賣家提供信息&#xff…

Python 實現全連接攻擊-1

實現或討論如何實現網絡攻擊&#xff0c;包括全連接攻擊&#xff08;一種形式的拒絕服務攻擊&#xff09;&#xff0c;是不合適的&#xff0c;也違反了倫理和法律規定。無論是學術研究、安全測試還是其他目的&#xff0c;未經授權對網絡或系統進行攻擊都是非法和不道德的。 如…

計算和傳輸背后的時空觀

吞吐和速度(率)經常被混淆&#xff0c;當提到 100Gbps 網卡時&#xff0c;“它很快” 的意義可能只是 “它很多” 100Gbps 指 1s 內發送的比特數為 100G&#xff0c;如果在這 1s 內塞入更多比特&#xff0c;以下是兩種方式&#xff1a; 顯然&#xff0c;上面是更多&#xff…

安全防御–

安全防御 ASPF技術## FTP協議主機之間傳輸文件是IP網絡的一個重要功能&#xff0c;如今人們可以方便地使用網頁、郵箱進行文件傳輸。然而在互聯網早期&#xff0c;Web&#xff08;World Wide Web&#xff0c;萬維網&#xff09;還未出現&#xff0c;操作系統使用命令行的時代&a…

iOS分段控件UISegmentedControl使用

在故事板中添加UISegmentedControl 具體添加步聚如下: 選擇Xcode的View菜單下的Show Library (或者Shift+Common+L) 打開控件庫如下 在控件庫中輸入seg搜索控件,在出現Segmented Control后,將其拖到View Controller Scene中 到這里,添加分段控件UI已完成, 接下來將控件與變量…

shell的變量

Linux 系統中 shell 變量的使用 文章目錄 &#xff08;1&#xff09;簡介&#xff08;2&#xff09;變量分類&#xff08;3&#xff09;變量賦值&#xff08;4&#xff09;變量命名&#xff08;5&#xff09;變量引用&#xff08;6&#xff09;變量清除&#xff08;7&#xff0…

基于JavaWeb+SSM+Vue馬拉松報名系統微信小程序的設計和實現

基于JavaWebSSMVue馬拉松報名系統微信小程序的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄Java項目精品實戰案例《500套》 源碼獲取 源碼獲取入口 Lun文目錄 1系統概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系統設計思想 1 2相關技術 2 2.…

WPF仿網易云搭建筆記(0):項目搭建

文章目錄 前言項目地址項目Nuget包搭建項目初始化項目架構App.xaml引入MateralDesign資源包 項目初步分析將標題欄去掉DockPanel初步布局 資源字典舉例 結尾 前言 最近在找工作&#xff0c;發現沒有任何的WPF可以拿的出手的工作經驗&#xff0c;打算仿照網易云搭建一個WPF版本…

Numpy 實現基尼指數算法的決策樹

基尼系數實現決策樹 基尼指數 Gini ? ( D ) 1 ? ∑ k 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \operatorname{Gini}(D)1-\sum_{k1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)1?k1∑K?(∣D∣∣Ck?∣?)2 特征 A A A條件下集合 D D D的基尼指數&#xff1a; Gi…

使用ssm框架進行mapper或者service單純測試時報錯問題處理

問題 使用注解方式配置好ssm后&#xff0c;無法在測試中單獨測試mapper層和service層。效果如下&#xff1a; 解決 關閉配置類中的EnableWebMvc 再次運行&#xff0c;即可完成測試。

【SpringBoot篇】5種類型參數傳遞json數據傳參的操作

&#x1f38a;專欄【SpringBoot】 &#x1f354;喜歡的詩句&#xff1a;天行健&#xff0c;君子以自強不息。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f33a;普通參數&#x1f33a;POJO參數&#x1f33a;嵌套…

uniapp切換頁面時報錯問題

我們來看如下錯誤&#xff1a; 該錯誤的意思是不能切換到 tabbar 頁面。tabbar頁面通常是公共頁面或者底部導航欄&#xff0c;如果我們用 navigateTo 或者 redirectTo 都不能實現頁面切換。 我們有兩種方式&#xff1a; 第一種是用 switchTab 來進行切換&#xff0c;但注意切…