目錄
一、DNS
二、域名
三、web基礎
四、HTTP
五、總結
摘要:簡單敘述web基礎,網頁的概念,域名決議,域名結構,HTML超文本傳輸語言,cookie和session擴展
一、DNS
1.DNS概念
內網和外網無法通信,為了內網可以和外網通信,dns技術解決問題,可以將公網和私網互相通信,

2.DNS型別
正向決議:將域名決議為IP地址,
反向決議:將IP地址轉換為域名地址,


3.DNS決議方式
(1) 快速決議檔案/etc/hosts
linux系統中負責快速決議的檔案,包含了ip與主機名的映射關系,在沒有DNS服務器的情況下,使用本地/etc/hosts完成決議/映射,實作快速訪問
優先級最高,
主要用于主機之間(IP和主機名)的映射/決議關系
(2)DNS客戶端組態檔/etc/resolv.conf
DNS客戶端組態檔,主要用于設定DNS服務器的IP和域名,還包含了主機域名的搜索順序等等,這個檔案是由域名決議器使用的組態檔,
主要用與匹配DNS服務器
(3) 網卡組態檔/etc/sysconfig/network-scripts/ifcfg-ens33
可以在網卡組態檔中定義DNS1,DNS2
生效順序 1 hosts檔案 2 網卡組態檔 3 /etc/resolv.conf
二、域名
1.域名概念
網路是基于 TCP/IP 協議進行通信和連接的,每一臺主機都有一個唯一的標識(固定的 IP 地址),用以區別在網路上成千上萬個用戶和計算機,
為了保證網路上每臺計算機的 IP 地址的唯 一性,用戶必須向特定機構申請注冊,分配 IP 地址
2.域名分配
為了保證地址唯一性,用戶協議向特地給機構申請注冊,分配IP地址網路中的地址
兩套方案: ① IP地址系統 ② 域名地址系統
(1)面試例子
阿里云域名申請(未申請成功不可使用,會被封)
1.準備材料
2.查看并申請域名
3.付款
4.備案
三、web基礎
1.web概念
(1)網頁
純文本格式檔案 撰寫語言為HTML,在用戶的瀏覽器中被“翻譯”成網頁形式顯示出來,
(2)網站
由多個頁面構成的,每個網頁之間互相連接,通過超鏈接方式連接,
(3)域名
瀏覽網頁時輸入的網址,例如:www.baidu.com
(4)HTTP/HTTPS
HTTP是傳輸網頁的通信協議,而HTTPS是安全傳輸的通信協議

(5)URL
萬維網使用統一資源定位符來標志萬維網上的各種檔案,并使每個檔案在整個因特網的范圍內具有唯一的識別符號URL,

(6)HTML
撰寫網頁的語言,使用HTML超文本標記語言

(7)超鏈接
將多個網頁連接起來,可以互相切換,可以指定各種網頁,只需加入url地址

(8)發布
將制作好的網頁上傳到服務器供用戶訪問的程序,部署上云端,申請域名與IP地址映射,方便用戶訪問,
2.Web版本
(1)Web1.0
以編輯為特征,網站提供給用戶的內容是編輯處理后的,然后用戶閱讀網站提供的內容 這個程序是網站到用戶的單向行為
(2)Web2.0
更注重用戶的互動作用,用戶既是網站內容的消費者(瀏覽者),也是網站內容的制造者 加強了網站與用戶之間的互動,
網站內容基于用戶提供,網站的諸多功能也由用戶參與建設,實作了網站與用戶雙向的交流與參與
Web2.0特征 用戶分享、以興趣為聚合點的社群、開放的平臺,活躍的用戶
3.靜態頁面 與動態頁面
(1)靜態頁面
使用HTML撰寫,是簡單的單向輸出的展示型網站,功能少無法互動,沒有資料庫作為支撐,
每個靜態網頁都有一個url,而且url沒有?,因為沒有資料庫,更新資料很麻煩,靜態網頁每個網頁
都是單獨存在,內容穩定,方便搜索,沒有互動瀏覽速度快,開啟速度快,

(2)動態網頁
動態網頁url不是固定的,可以進行互動,功能比較多,例如登錄注冊基礎功能,而且url中由?是動態頁面的識別符號
更新資料快,維護簡單,會生成不同檔案,

四、HTTP
1.HTTP概念
HTTP超文本傳輸協議是互聯網上應用最為廣泛的一種網路協議,它是基于TCP協議的應用層傳輸協議,簡單來說就是客戶端和服務端進行資料傳輸的一種規則,
2.HTTP版本
(1)HTTP 0.9
1991,原型版本,功能簡陋,只有一個命令GET,只能回應HTML格式,已被淘汰,
(2)HTTP 1.0
每個TCP連接只能發送一個請求,發送資料完畢,連接就關閉,如果還要請求其他資源,就必須再新建 一個連接引入了POST命令和HEAD命令頭資訊
是 ASCII 碼,后面資料可為任何格式,服務器回應時會告訴客戶端,資料是什么格式,
(3)HTTP 1.1
持久連接,即TCP連接默認不關閉,可以被多個請求復用,不用宣告Connection: keep-alive,對于同一個域名,大多數瀏覽器允許同時建立6
個持久連接引入了管道機制,即在同一個TCP連接里,客戶端可以同時發送多個請求,進一步改進了HTTP協議的效率
3.HTTP1.0和HTTP1.l之間的區別
(1) 快取處理
在HTTP1.0中主要使用header里的If-Modified-Since,Expires來做為快取判斷的標準,HTTP1.1則引入了更多的快取控制策略
例如Entitytag,If-Unmodified-Since,If-Match,If-None-Match等更多可供選擇的快取頭來控制快取策略,
(2)帶寬優化及網路連接的使用
HTTP1.0中,存在一些浪費帶寬的現象,例如客戶端只是需要某個物件的一部分,而服務器卻將整個物件送過來了,
并且不支持斷點續傳功能,HTTP1.1則在請求頭引入了range頭域,它允許只請求資源的某個部分,即回傳碼是206 (Partial Content) ,
這樣就方便了開發者自由的選擇以便于充分利用帶寬和連接
(3)錯誤通知的管理
在HTTP1.1中新增了24個錯誤狀態回應碼,如409 (Conflict)表示請求的資源與資源的當前狀態發生沖突;410(Gone)表示
服務器上的某個資源被永久性的洗掉
(4)Host頭處理
在HTTP1.0中認為每臺服務器都系結一個唯一的IP地址,因此,請求訊息中的RZ并沒有傳遞主機名(hostname),但隨著虛擬主機技術的發展,
在一臺物理服務器上可以存在多個虛擬主機(Multi-homed web Servers),并且它們共享一個Ie地址,
HTTP1.1的請求訊息和回應訊息都應支持
Host頭域,且請求訊息中如果沒有inost頭域會報告一個錯誤(400 Bad Request )
(5)長連接
HTTP1.1支持長連接〈PersistentConnection)和請求的流水線(Pipelining)處理,在一個TCP連接上可以傳送多個HTT請求和回應,
減少了建立和關閉連接的消耗和延遲,在HTTP1.1中默認開啟connection:keep-alive,一定程度上彌補了HTTP1.0每次請求都要創建連接的缺點
4.HTTPS 協議
(1)HTTPS
就是安全版的HTTP,目前大型網站基本實作全站解決安全問題
(2)HTTPS特點
HTTP和HTTPS使用的是不同的連接方式,埠不同,前者是80,后者是443
HTTPS可以有效的防止運營商劫持,解決了防劫持的一個大問題
HTTPS 實作程序降低用戶訪問速度,但經過合理優化和部署,HTTPS 對速度的影響還是可以接受的
HTTP協議運行在TCP之上,所有傳輸的內容都是明文,HTTPS運行在SSL/TLS之上,SSL/TLS運行 在TCP之上,所有傳輸的內容都經過加密的
HTTPS協議需要到CA申請證書,一般免費證書很少,需要交費
5.HTTP 請求格式
(1)GET 方式
請求行 請求的方式 請求的資源路徑 請求的版本協議號
請求頭(描述資訊/標準化資訊)
Accept:客戶端可以接受的資料型別 Accept-Language:客戶端可以接受的語言型別
User-Agent:瀏覽器的資訊 Accpect-Encoding:客戶端可以接受的編碼格式
Host:表示請求的ip和埠號 Connection:告訴服務器請求連接如何處理
Keep-Alive:通知服務器回傳資料不要馬上關閉,保持一小段的連接 Closed:馬上關閉
(2)POST 請求方式
請求行 請求的方式 請求的資源路徑 請求的協議的版本號
請求頭
Accept:客戶端可以接受的資料型別 Accept-Language:客戶端可以接受的語言型別
Referer:表示請求發起時,瀏覽器地址欄中的地址 User-Agent:瀏覽器的資訊
Content-Type:發送的資料型別 Content-Length:發送的資料長度
請求體:就是發送給服務器的資料

6.GET 與POST 區別
(1)語意上的區別
Get向服務器請求資料,依照HTTP協議,get 是用來請求資料,
Post向服務器發資料,依照HTTP協議,Post的語意是向服務器添加資料,也就是說按照Post的語意,該操作是會修改服務器上的資料
(2)服務器請求的區別
Get請求是可以被快取,示例: 訪問百度,訪問的方式就是GET,此時訪問后的內容會緩被存在瀏覽器中,短時間再次訪問,
其實是拿到的瀏覽器中的快取內容 另外Get請求只能接收ASCII碼的回復
Post請求是不可以被快取的,對于Post方式提交表單,重繪頁面瀏覽器會彈出提示框“是否重新提交表單”,
Post可以接收二進制等各種資料形式,所以如果要上傳檔案一般用Post請求
(3)引數放請求頭和請求體的差別
Get請求通常沒有請求體(當然這也是可以由程式猿心情改變的),在TCP傳輸中只需傳輸一次(而不是一個包), 所以Get請求效率相對高,
Post請求將資料放在請求體中,而實際傳輸中,會先傳輸完請求頭,再傳輸請求體,是分為兩次傳輸的(而不是兩個包),
Post請求頭會比Get更小(一般不帶引數),請求頭更容易在一個TCP包中完成傳輸,更何況請求頭中有Content-Length的標識,
可以更好地保證Http包的完整性,
7.HTTP狀態碼
(1)正常狀態碼和例外狀態碼
當使用瀏覽器訪問某一個URL,會根據處理情況回傳相應的處理狀態 通常正常的狀態碼為2xx,3xx(如200)
如果出現例外會回傳4xx,5xx(如404)
(2)狀態碼
狀態碼首位 已定義范圍 分類
1xx 100-101 資訊提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客戶端錯誤
5xx 500-505 服務器錯誤
(3)生產環境常見的HTTP狀態碼
訊息 描述
200 OK 請求成功(其后是對GET和POST請求的應答檔案)
301 Moved Permanently 請求的永久頁面跳轉
403 Forbidden 禁止訪問該頁面
404 Not Found 服務器無法找到被請求的頁面
500 Internal Server Error 內部服務器錯誤
502 Bad Gateway 無效網關
503 Service Unavailable 當前服務不可用
504 Gateway Timeout 網關請求超時
8.HTTP協議請求流程

程序:用戶輸入URL客戶端獲取到埠及主機名后,客戶端利用DNS決議域名,首先客戶端的瀏覽器會先找自身的快取,如果有決議結束,如果沒有客戶端 · 會去找host檔案,如果host檔案沒有的話,客戶端會去找本地的DNS快取服務器,本地的DNS快取服務器沒有的話,快取服務器會去找根域,根域 沒有,會回傳一個.com.然后本地快取服務器會去找頂級域,頂級域沒有的話會回傳baidu.com.,然后本地快取服務器會去找二級域,二級域決議完 后會回傳客戶端,
客戶端決議到IP地址后會通過TCP的三次握手與服務器建立連接
9.HTTP狀態
(1)無狀態
當網頁的內容沒有改變,那么就是無狀態,例子:今天寫了一個100內加減的shell腳本,第二天還是100內加減的shell腳本,
(2)有狀態
當網頁的內容有所改變,那么就是有狀態,例子:今天寫了100內加減的shell腳本,第二天又寫了一遍,然后又寫了500以內加減法,
10.cookie和session擴展
(1)功能
cookie和session都為了實作的是http的短期的持久化(記憶體/快取方式,查詢快、效率比較高)cookie 是快取在用戶端(client)瀏覽器中的(默認快取一 天),當下次客戶端通過同一個瀏覽器訪問客戶端的時候,會優先讀取cookie中的快取資訊,向服務端進行請求,同時服務端收到客戶端請求的時 候,讀取到cookie檔案,知道客戶端之前找的是服務器A處理的任務,為了省事兒,省資源,干脆直接講請求直接再交給服務器A處理
(2)區別
cookie 省服務器性能 session 更安全,為后面服務、集群、功能優化做鋪墊,具體解釋了怎么解決HTTP無狀態協議的持久化/存盤,
cookie是再客戶端,seesion是在服務端

五、總結
web基礎可以分為網頁和網站,網頁是組成網站的基礎,HTML超文本標記語言是撰寫網頁的語言,現如今使用的是HTML1.0和2.0,網頁則使用靜態網頁和動態網頁的結合,現如今使用DNS決議地址,讓公網和私網可以通信,當網頁可以決議,狀態碼可以反應出相應的狀態,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555260.html
標籤:其他
下一篇:返回列表
