Nginx:Web基礎與HTTP協議

目錄

1、dns域名

1.1 dns解析方式:

1.2 域名解析服務器:

2、html

2.1 網頁、網站和主頁、域名

2.2 URL和URI

3、Web(全球廣域網,也稱萬維網)

3.1 靜態頁面

3.1.1 靜態頁面特點

3.2 動態頁面

3.2.1 動態頁面特點

4、http

4.1?http協議簡介

4.2 工作流程

4.3 cookie

4.4 連接保持功能

4.5?http的請求方式

4.6?get方法

4.7post

4.8 響應碼、狀態碼

4.8.1請求狀態的響應碼:

4.9?通信套接字

4.9.1?http協議當中socket的作用

4.9.2?套接字的相關接口

5、nc工具來模擬實驗

6、HTTP協議請求流程分析


1、dns域名

網絡是基于tcp/ip協議進行通信和連接的

應用層-----傳輸層-----網絡層-----數據鏈路層-----物理層

ip地址:每一臺主機都有一個唯一的地址標識(固定的ip地址),為了區分用戶和計算機和進行通信

ip地址的問題在于32位二進制數組成的,不方便記憶,所以就引申出來域名

dns解析:就是把域名解析成ip地址,方便通信,訪問

1.1 dns解析方式:

·??/etc/hosts :負責快速解析文件,包含了ip與主機名之間的映射關系,如果沒有dns服務的情況下,可以使用/etc/hosts文件來完成解析和映射

· /etc/resolv.conf dns:客戶端的配置文件,設置dns服務器的ip和域名,還包含了主機域名的搜索順序,主要是域名解析服務器使用的配置文件

· 修改網卡配置文件 ifcfg-ens33

生效順序 1.hosts 2.網卡配置文件 3.resolv.conf

dns域名解析服務器,由運營商來做
?

1.2 域名解析服務器:

· 保持和維護域名空間

· 響應解析請求

解析端(客戶端)

跟域-----頂級域-----二級域-----子域----主機名

2、html

html:超文本標記語言,是一種規范的,標準的語言格式

網頁文件本身就是一個文本文件,html通過標記的方式,告訴瀏覽器,如何顯示文本當中的內容,html文件是一個文本文件,所有能夠生成txt文件的工具,都可以進行編輯,修改之后的文件的后綴名:.html 或者 .htm

2.1 網頁、網站和主頁、域名

網頁:純文本格式的文件,用html語言來進行編寫,在用瀏覽器翻譯成頁面的形式顯示出來

網站:是由多個頁面組成的,網頁的結合體

主頁:打開網站后,出現的第一個頁面,就是網站的主頁,也可以說是首頁

域名:瀏覽網頁時,輸入的網址

http/https:用來傳輸頁面的通信協議,https是加密的,是一種通信協議,基于tcp協議

端口號:http默認端口80;https默認是443

查看方式:netstat? -antp? |? grep? nginx

2.2 URL和URI

URL:萬維網尋址系統,唯一的表示

eg:https://www.bilibili.com/類似這種的完整地址為url

https://www.bilibili.com/v/dance/?spm? id? from=333.1007.0.0這種格式url后面的為uri

超鏈接:超鏈接將網站中的不同頁面連接起來

發布:將制作好的網頁上傳到服務器,供用戶訪問

html的語法

<html>?

? ? <head>網頁的內容描述信息</head>?

? ? <body>網頁的具體內容</body>

</html>

頭標前中常用的標簽

<title>文檔標題

<base>頁面標簽的鏈接地址

<script>客戶端的腳本文件

<style>html文檔的樣式

內容當中常用的標簽

<table>定義表格

<tr>定義表格中的一行

<td>定義表格中某一行的一列

<img>定義圖片

<a>超鏈接

<font>定義字體

3、Web(全球廣域網,也稱萬維網)

web.1.0 靜態頁面就是看? ?web.2.0 動態頁面用戶交互

3.1 靜態頁面

靜態頁面就是標準的html文件

擴展名都是.htm或者.html

里面可以包含圖片,文本,聲音動畫;是網站搭建的基礎,早期的網站都是靜態頁面,沒有后臺數據,不包含可交互的內容,更新起來比較麻煩,一般用于展示型網站

3.1.1 靜態頁面特點

· URL是固定的,一般不包含以?為后綴

· 頁面一經發布,都是保存在網站的服務器上

· 靜態頁面相對穩定,內容很少發生變化,容易被搜索引擎檢索

· 沒有數據庫的支持,制作和維護的工作量,都比較大,網站的信息量如果太大,單純的使用靜態頁面比較困難

· 沒有交互性,功能上受限很大

· 瀏覽速度快,因為不需要連接數據庫

3.2 動態頁面

· 網頁URL是不固定的,用戶可以和后臺數據進行交互

· 動態頁面的網址中,一般包含一個特殊標記-----$?

?· 動態頁面的語言:php jsp python buby tomcat(java)

3.2.1 動態頁面特點

· 交互性?

· 自動跟新

· 特效,每個人進入頁面的時候,會有不同的效果

小結:靜態頁面就是看,動態頁面可以進行交互

4、http

4.1?http協議簡介

http協議,超文本傳輸協議,互聯網上應用最廣泛的網絡協議,基于tcp協議的應用的傳輸協議,面向用戶,客戶端和服務端之間進行數據傳輸的一種規則

4.2 工作流程

工作流程:

· 客戶端和服務端進行tcp鏈接 :三次握手----建立連接

· 客戶端發送http請求,服務端接收到http請求之后,響應客戶端的請求

· socke 接口,通過端口進行通信

· 響應到達客戶端,解析的過程(瀏覽器),用戶查看,使用,訪問

· 訪問,使用,查看,結束之后,斷開連接,四次揮手

http是一種無狀態的協議,本身不會對發送的請求和響應的通信進行持久化處理(連接保持),為了讓http能夠快速的大量的進行處理事務,提高效率。連接保持是需要的

4.3 cookie

記錄用戶的登陸狀態,跟蹤統計用戶訪問網站的習慣,識別用戶身份,保存用戶信息

這個是服務器留在用戶計算機的小文件

4.4 連接保持功能

http協議本身自帶的連接保持功能

http1.1:自帶鏈接保持功能,長連接

長連接:一次性獲取頁面的文件的所有信息,不再需要分開處理請求,所以速度大大加快,并行

連接保持:keep-alive,在一個tcp連接上可以傳送多個http的請求和響應,減少了建立和關閉連接的消耗和延遲,連接保持是有時間,不是無限的,是默認開啟的,60s

連接資源占用:長時間保持,會降低服務器的負載,如果是高并發,會使服務器耗盡資源

鏈接狀態管理:長連接需要維護連接狀態,服務器需要跟蹤每個連接的狀態,增加服務器的負擔(集群的誕生)

https:加密通信協議,加密數據傳輸,加密過程涉及客戶端和服務器之間進行密鑰交換,確保只有合法的接收方,能夠解密數據

4.5?http的請求方式

· 請求頭

請求頭當中包含請求體

請求體當中的內容

Accept:客戶端可以接受的數據類型
Accept-Language:客戶端可以接受的語言類型
User-Agent:瀏覽器的信息
Accpect-Encoding:客戶端可以接受的編碼格式
Host:表示請求的ip和端口號
Connection:告訴服務器請求連接如何處理
Keep-Alive:通知服務器回傳數據不要馬上關閉,保持一小段的連接
Closed:馬上關閉

請求方式:get 就是用來向服務器發起請求,http協議中的get,就是請求

· 響應頭

· 總覽 General

post也是請求的一種,post是向后臺發數據,向服務器會添加數據,也可以改變服務器上的數據

4.6?get方法

特點:

· 從指定服務器獲取數據

· get請求是可以被緩存

· get請求會保存在瀏覽器上的記錄中,cookie

· get請求的長度,是有限度的

4.7post

也是請求的一種,提交數據給服務器處理

· post請求不能緩存

· post請求也不會記錄在瀏覽器的記錄當中

· 請求體的長度也沒有限制

4.8 響應碼、狀態碼

狀態碼,響應碼,服務器來進行提供的

請求之后,服務器收到請求會有一個回應,響應,同時反饋一個響應碼

4.8.1請求狀態的響應碼:

? 1xx表示 100-101 信息提示

? 2xx表示 200-206 成功,請求響應成功,只要狀態碼是200,統統是成功

? 3xx表示 300-305 重定向

? 4xx表示400-415 客戶端錯誤,請求不到,獲取資源失敗

? 5xx表示 500-505 服務端錯誤 響應失敗

總結:

200 成功

301 請求的永久頁面跳轉

304 重定向到緩存

403 禁止訪問(沒有權限)

404 請求頁面找不到 (請求的文件不存在)

500 服務器內部錯誤(配置文件名錯了)

502 網管失效(可能是網絡,可能是防火墻)

503 服務不可用(可能是網絡,可能是防火墻)

504 網關請求超時 (可能是網絡,可能是防火墻)

4.9?通信套接字

socket:實現不同主機進行通信和數據交換,進程間傳輸的標志ip:端口

4.9.1?http協議當中socket的作用

· 客戶機套接字:定義唯一的客戶進程

· 服務端套接字:定義了一個唯一的服務器進程

4.9.2?套接字的相關接口

socket ()創建端口

bind ()綁定ip和端口

listen () 監聽,等待連接

accept ()接受請求

connect ()請求連接建立

write () 發送

read () 接收?

close 關閉連接

ESTABLISHED 連接已經建立,正在傳輸數據

5、nc工具來模擬實驗

[root@localhost ~]#nc -l 8888
#監聽9527
[root@localhost ~]#ss -ntlp
#正在監聽端口
LISTEN ? ? 0 ? ? ?10 ? ? ? ? ? ? ? ?*:9527

使用第二太機器測試
[root@localhost ~]#nc 192.168.233.10 8888
hello

6、HTTP協議請求流程分析

用戶輸入URL(地址鏈接)(http://www.baidu.com:80/tools.html)客戶端獲取到端口及主機名后,
客戶端利用DNS解析域名,首先客戶端的瀏覽器會先找自身的緩存,
如果有解析結。
如果沒有客戶端會去找host文件,host文件沒有的,
客戶端會去找本地的DNS緩存服務器,
本地的DNS緩存服務器沒有,緩存服務器會去找根域,
根域沒有,會返回一個.com.然后本地緩存服務器會去找頂級域,
頂級域沒有的話會返回baidu.com.,然后本地緩存服務器會去找二級域,二級域解析完后會返回客戶端。?

客戶端解析到IP地址后會通過TCP的三次握手與服務器建立連接

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

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

相關文章

什么是CSS的box-sizing屬性?它有哪些取值,各有什么不同?

聚沙成塔每天進步一點點 ? 專欄簡介? CSS的box-sizing屬性? 取值? 不同之處? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅&#xff01;這個專欄是為那些對Web…

關于Vue構建低代碼平臺的思考

一、前言 在項目實戰開發中&#xff0c;尤其是大平臺系統的搭建&#xff0c;針對不同業務場景&#xff0c;需要為用戶多次編寫用于錄入、修改、展示操作的相應表單頁面。一旦表單需求過多&#xff0c;對于開發人員來說&#xff0c;算是一種重復開發&#xff0c;甚至是繁雜的工作…

【C++起飛之路】初級—— auto、范圍for循環、宏函數和內聯函數

auto、范圍for、內聯函數、宏函數和nullptr 一、auto — 類型推導的魔法&#xff08;C 11)1、auto 是什么&#xff1f;2、工作原理3、優勢4、限制和注意事項 二、范圍for (C11)1、基本語法2、優勢3、工作原理4、注意事項5、C11&#xff1a; 范圍 for 循環的擴展&#xff1a; 三…

軟件測試基礎篇——LAMP環境搭建

LAMP 1、Linux系統的其他命令 find命令&#xff1a;在目錄下查找文件 ? 格式一&#xff1a;find 路徑 參數 文件名 ? 路徑&#xff1a;如果沒有指定路徑&#xff0c;默認是在當前目錄下 ? 參數&#xff1a;-name 根據文件名來查找&#xff0c;區分大小寫&#xff1b; -…

useState() 的使用及場景

useState是 React提供的一個Hook函數&#xff0c;用于在函數組件中添加和管理狀態。它允許你在函數組件中定義一個可變的狀態&#xff0c;并在組件的生命周期中對狀態進行更新和訪問。 使用useState可以避免使用類組件時需要定義和管理繁瑣的constructor&#xff0c;state和se…

HOT83-打家劫舍

leetcode原題鏈接&#xff1a;打家劫舍 題目描述 你是一個專業的小偷&#xff0c;計劃偷竊沿街的房屋。每間房內都藏有一定的現金&#xff0c;影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統&#xff0c;如果兩間相鄰的房屋在同一晚上被小偷闖入&#xff0c;系…

適配器模式(C++)

定義 將一個類的接口轉換成客戶希望的另一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 應用場景 在軟件系統中&#xff0c;由于應用環境的變化&#xff0c;常常需要將“一些現存的對象 ”放在新的環境中應用&#xff0c;但是新環境要求…

【Golang】一文學完 Golang 基本語法

Golang 下載 安裝包鏈接&#xff1a;https://share.weiyun.com/InsZoHHu IDE 下載&#xff1a;https://www.jetbrains.com/go/ 第一個 golang 程序 package mainimport "fmt"func main() {fmt.Println("hello golang") }每個可執行代碼都必須包含 Pack…

Flutter 狀態管理 Provider

狀態管理必要性 Flutter基于聲明式構建UI&#xff0c;原生則是命令式&#xff0c;狀態管理是用于解決聲明式開發帶來的問題。 例&#xff1a;命令式的原生&#xff0c;數據更新需要拿到對應控件并更改其顯示值&#xff1b;而聲明式則需要更改數據值并通過setstate更新狀態&am…

sql高頻面試題-連續完成兩個指定動作的用戶統計

用戶行為分析 業務背景 某購物APP最近上線了一個新功能&#xff0c;用戶簽到后可以跳轉到大轉盤抽獎&#xff0c;抽獎獲得的獎金可以抵消購物的費用&#xff0c;以此來培養用戶使用app的習慣。 數據表介紹 現有一張用戶行為表action_log&#xff0c;主要字段如下&#xff0c…

springboot mongodb 配置多數據源

我想要的效果是&#xff0c;一個類統一管理多數據源&#xff0c;我傳個參數進去&#xff0c;它就能返回我對應的mongotemplate 但是根據"mongbodb 多數據源"的關鍵詞&#xff0c;找不到我想要的效果。 網上大多都是明確知道自己是幾個數據源&#xff0c;然后每個數…

Styletron: 面向組件的樣式設計工具包

styletron官網&#xff1a; styletron的GitHub鏈接&#xff1a; styletron-react 一. 介紹 Styletron是一個通用的component-oriented&#xff08;面向組件的&#xff09;樣式工具。它屬于css-in-js類別。Styletron可以很好地與React配合使用&#xff0c;但也可以與其他框架或…

docker復現nginx錯誤配置漏洞

目錄 一、nginx環境搭建 1.1搭建步驟 二、docker復現Nginx配置漏洞 2.1安裝docker 2.2復現過程 2.1CRLF(carriage return/line feed)注入漏洞 2.2.目錄穿越 一、nginx環境搭建 1.1搭建步驟 1.先創建Nginx的目錄并進入&#xff08;命令如下&#xff09; mkdir /soft &&…

Android Framework底層原理之WMS的啟動流程

一 概述 今天&#xff0c;我們介紹 WindowManagerService&#xff08;后續簡稱 WMS&#xff09;的啟動流程&#xff0c;WMS 是 Android 系統中&#xff0c;負責窗口顯示的的服務。在 Android 中它也起著承上啟下的作用。 如下圖&#xff0c;就是《深入理解 Android》書籍中的…

033_小馳私房菜_Qcom平臺8系列-Dump Jpeg Jpeg Exif信息修改

全網最具價值的Android Camera開發系列資料~ 作者:8年Android Camera開發,從Camera app一直做到Hal和驅動~ 歡迎訂閱,相信能擴展你的知識面,提升個人能力~ 平臺:高通8系列 jpeg相關代碼邏輯在camx/src/swl/jpeg/ 路徑下 一、Dump Jpeg 有時我們想把hal這邊拍照的jpe…

【C++】STL初識

1.STL的基本概念 2.vector存放內置數據類型 #include <iostream> using namespace std; #include <vector> #include <algorithm>void MyPrint(int val) {cout << val << endl; }void test01() {//創建vector容器對象&#xff0c;并且通過模板參…

Harbor企業鏡像倉庫部署(本地)

簡述&#xff1a; Docker 官方鏡像倉庫是用于管理公共鏡像的地方&#xff0c;大家可以在上面找到想要的鏡像&#xff0c;也可以把自己的鏡像推送上去。但是有時候服務器無法訪問互聯網&#xff0c;或者不希望將自己的鏡像放到互聯網上&#xff0c;那么就需要用到 Docker Regis…

越南的區塊鏈和NFT市場調研

越南的區塊鏈和NFT市場調研 基本介紹 https://zh.wikipedia.org/wiki/%E8%B6%8A%E5%8D%97 語言文字&#xff1a; 越南語&#xff0c; 文字以國語字&#xff08;越南羅馬字&#xff09;為主&#xff0c;漢喃文&#xff08;漢字&#xff09; 貨幣&#xff1a;越南盾 人口(2022…

Leetcode-每日一題【劍指 Offer 15. 二進制中1的個數】

題目 編寫一個函數&#xff0c;輸入是一個無符號整數&#xff08;以二進制串的形式&#xff09;&#xff0c;返回其二進制表達式中數字位數為 1 的個數&#xff08;也被稱為 漢明重量).&#xff09;。 提示&#xff1a; 請注意&#xff0c;在某些語言&#xff08;如 Java&…

如何安全地移動WSL 2 到另一個驅動器

當您擁有小型 SSD 并且適用于 Linux 的 Windows 子系統 (WSL) 的大小呈指數增長時&#xff0c;這真的很痛苦。沒有簡單的方法將 WSL 安裝移動到另一個驅動器。在這篇博客中&#xff0c;我將討論如何通過小步解決這個問題。 1.打開具有管理員訪問權限的 PowerShell或命令提示符…