補充:http服務首頁文件在/var/www/html下的,一定是index.html命名的文件。才會顯示出來。
如果該路徑下沒有相應的文件,會顯示/usr/share/httpd/noindex下的index.html文件。
如果/usr/share/httpd/noindex沒有index.html文件,會顯示403狀態碼。
一、Web?基礎
1、域名的概念
網絡是基于?TCP/IP?協議進行通信和連接的,每一臺主機都有一個唯一的標識(固定的?IP?地址),用以區別在網絡上成千上萬個用戶和計算機。為了保證網絡上每臺計算機的?IP?地址的唯一性,用戶必須向特定機構申請注冊,分配?IP地址。網絡中的地址方案分為兩套:IP地址系統和域名地址系統。這兩套地址系統其實是一一對應的關系。IP?地址用二進制數來表示,每個?IP?地址長?32?比特,由?4?個小于?256?的數字組成,數字之間用點間隔。
早起沒有DNS的時候就是通過Hosts文件解析域名,隨著后期技術的發展開始使用DNS來解析域名,有了DNS自后Hosts就不再使用了。
C:\Windows\System32\drivers\etc??????### windows?中hosts文件位置
![]()
windows系統查看dns緩存內容:
ipconfig/displaydns
清空dns緩存:ipconfig/flushdns

linux系統查看dns緩存內容需要安裝相應的軟件包:
yum -y install nsc 然后啟動這個服務:systemctl start nscd
nscd -g:查看緩存內容 (但是只是顯示緩存的數量)
詳見:
![]()
如何測試dns服務器:需要先安裝dns工具集
yum -y install bind-utils
然后使用nslookup ip
或者使用dig工具測試;且測試出來的內容比較全面。
以及路由跟蹤工具:traceroute 需要先安裝這個工具:
yum -y install traceroute
windos的系統路由跟蹤顯示的比較詳細;命令為tracert

2、域名的結構
以一個常見的域名為例說明其結構?,www.baidu.com?網址是由二部分組成,標號“baidu”是這個域名的主體,而最后的標號“com”則是該域名的后綴,代表的這是一個?com?國際域名,是頂級域名,而前面的?www?是主機名。
DNS?規定,域名中的標號都由英文字母和數字組成,每一個標號不超過?63?個字符,也不區分大小寫字母。標號中除連字符(-)外不能使用其他的標點符號。級別最低的域名寫在最左邊,而級別最高的域名寫在最右邊。由多個標號組成的完整域名總共不超過?255?個字符。? ? ? ? ? ? 中國的監管部門:CNNIC
根域:指的是根服務器,要用來管理互聯網的主目錄,全世界只有?13?臺。1?個為主根服務器,放置在美國。其余?12?個均為輔根服務器,其中?9?個放置在美國;歐洲?2?個,位于英國和瑞典;亞洲?1?個,位于日本。所有根服務器均由美國政府授權的互聯網域名與號碼分配機構?ICANN?統一管理,負責全球互聯網域名根服務器、域名體系和?IP?地址等的管理。
頂級域:包括組織域和國家/地區域名。域名的最右側是國家/地區域名,國家代碼由兩個字母組成的如.cn,?.uk,?.de?和.jp,?其中.cn?是中國專用的頂級域名。在國家/地區域名左側,是組織域名,常見的.com?用于商業機構,.net?用于網絡組織,.org用于各種組織包括非盈利組織。
二級域名:在頂級域名之前的域名,在頂級域名前面,它是指域名注冊人的網上名稱,例如?baidu,ibm,yahoo,microsoft?等。
FQDN:是主機名.DNS?后綴,是指主機名加上全路徑,全路徑中列出了序列中所有域成員。全域名可以從邏輯上準確地表示出主機在什么地方,也可以說全域名是主機名的一種完全表示形式。從全域名中包含的信息可以看出主機在域名樹中的位。

3、域名注冊
域名注冊是?Internet?中用于解決地址對應問題的一種方法。每個域名都是獨一無二的,不可重復的。
通常dns服務是駕馭在udp協議之上(53端口)。

二、網頁與?HTML
網頁是構成網站的基本元素,是承載各種網站應用的平臺。通俗地說,網站就是由網頁組成的。如果只有域名和虛擬主機而沒有制作任何網頁,那么客戶仍舊無法訪問這個網站。因為網頁是由?HTML(超文本標記語言)編寫的。
1、網頁概述
網頁是一個文件,他存放在世界某個角落的某一部計算機中,而這部計算機必須是與互聯網相連的。網頁經由網址(URL)來識別與存取,是互聯網中的一“頁”。

網頁的相關概念
域名:是瀏覽網頁時輸入的網址。
HTTP:用來傳輸網頁的通信協議,使用瀏覽器訪問網址時在域名前面要加上
http://,表示使用?http?協議傳輸網頁。
URL:是一種萬維網尋址系統,表示網絡上資源的位置路徑。
HTML:是編寫網頁的超文本標記語言。

網頁的概念

4、HTML?概述
HTML?叫做超文本標記語言,是一種規范,也是一種標準,它通過標記符號來標記要顯示的網頁中的各個部分。網頁文件本身是一種文本文件,通過在文本文件中添加標記符,可以告訴瀏覽器如何顯示其中的內容。

HTML?文件可以使用任何能夠生成?txt?文件的文本編輯器來編輯,生成超文本標記語言文件,只用修改文件名后綴為”.html”或“.htm”即可。
html雙標記語言

5、HTML?基本標簽
(1)HTML?語法規則
HTML?標簽采用雙標記符的形式,前后標記符對應,分別表示標記開始和結束標記符中間的內容被標簽描述。前標記符由“”表示,結尾標記符多了一個“/”,由“”表示。

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

網站是由網頁組成的,包含多個網頁頁面,具有獨立域名、獨立存放空間的內容集合,這些內容可能是網頁,也可能是程序或其他文件。
當一個網站服務器收到一臺電腦上網絡瀏覽器的消息連接請求時,便會向這臺計算機發
送這個文檔。當在瀏覽器的地址欄輸入域名,而未指向特定目錄或文件時,通常瀏覽器
會打開網站的首頁。網站首頁往往會被編輯得易于了解該網站提供的信息,并引導互聯
網用戶瀏覽網站其他部分的內容。這部分內容一般被認為是一個目錄性質的內容。

6、Web1.0?與?Web2.0
Web1.0?是指早期互聯網模式,以門戶網站為主,內容由網站運營商提供,以巨大的點擊量和增值服務為主盈利手段。
Web2.0?是相對于?Web1.0?的新的時代。指的是一個利用?Web?的平臺,由用戶主導而生成的內容互聯網產品模式,如博客、社交網站等。為了區別傳統由網站雇員主導生成的內容而定義為第二代互聯網,即?Web2.0,是一個新的時代。

三、靜態網頁與動態網頁
1、靜態網頁的特點
在網站設計中,純粹?HTML?格式的網頁通常被稱為“靜態網頁”,靜態網頁是標準的HTML?文件,它的文件擴展名是.htm、.html。?靜態網頁是網站建設的基礎,早期的網站一般都是由靜態網頁制作的。靜態網頁也可以出現各種動態的效果,如.GIF?格式的動畫、FLASH、滾動字幕等。這些“動態效果”只是視覺上的,與下面將要介紹的動態網頁是不同的概念。

靜態網頁的特點

靜態網頁的特點

2.動態網頁
所謂的動態網頁,是指跟靜態網頁相對的一種網頁編程技術。靜態網頁,隨著?HTML代碼的生成,頁面的內容和顯示效果就基本上不會發生變化了——除非是修改頁面代碼。而動態網頁則不然,頁面代碼雖然沒有變,但是顯示的內容卻是可以隨著時間、環境或者數據庫操作的結果而發生改變的。動態網頁URL的后綴不是.htm、.html、.shtml、.xml?等靜態網頁的常見網頁制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi?等形式為后綴,并且在動態網頁網址中有一個標志性的符號——“?”。
動態網頁是基本的?html?語法規范與?Java、PHP、C#等高級程序設計語言、數據庫編程等多種技術的融合,以期實現對網站內容和風格的高效、動態和交互式的管理。因此,從這個意義上來講,凡是結合了?HTML?以外的高級程序設計語言和數據庫技術進行的網頁編程技術生成的網頁都是動態網頁。

早期的動態網頁主要采用通用網關接口?CGI(Common?Gateway?Interface)技術,雖然?CGI?技術已經發展成熟而且功能強大,但由于編程困難、效率低下、修改復雜,所以有逐漸被新技術取代的趨勢。

小結

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

HTTP?已經演化出了很多版本,它們中的大部分都是向下兼容的。
(1)HTTP/0.9?已過時。只接受?GET?一種請求方法,沒有在通訊中指定版本號,且不支持請求頭。由于該版本不支持?POST?方法,所以客戶端無法向服務器傳遞太多信息。
(2)HTTP/1.0?這是第一個在通訊中指定版本號的?HTTP?協議版本,至今仍被廣泛采用,特別是在代理服務器中。
(3)HTTP/1.1?當前版本。持久連接被默認采用,并能很好地配合代理服務器工作。還支持以管道方式同時發送多個請求,以便降低線路負載提高傳輸速度

2、HTTP?方法

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

POST方法
GET?方法采用的是?URL?后綴的形式,比如?http://www.test.com/a.php?Id=123就是一個?GET?請求,服務器接收后可以解析出?Id=123。而?POST?方法不需要在?URL?中顯示”?Id=123”,參數作為內容進行了隱藏的提交。因此,表單類或者有用戶名、密碼等內容提交時建議使用?POST?方法。
GET?方法在?URL?上顯示參數,而?URL?是有長度限制,故不適合提交過大的數據。GET?方法可以被瀏覽器緩存,當請求已經被請求過一次的?URL?時,瀏覽器不需要向服務器再次發出請求,直接在本地緩存中獲得頁面。

GET方法

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

生產環境常見的狀態碼如表

使用以下命令可以查看訪問網站的狀態碼:

六、HTTP?請求流程分析
補充:
訪問量(PV)
IP
UV(獨立訪客)
Cookie(身份信息)
用戶在瀏覽器輸入?URL?訪問時,發起?HTTP?請求報文,請求中包括請求行、請求頭、請求體,服務器收到請求后返回響應報文,包括狀態行、響應頭、響應體

1.請求報文
請求行:請求行由請求方法、URL?以及協議版本三部分組成。
請求頭:請求頭為請求報文添加了一些附加信息,由“名/值”對組成,每行一對,名和值之間使用冒號分隔
空行:請求頭部的最后會有一個空行,表示請求頭部結束,接下來為請求體,這一行非常重要,必不可少。
請求體:請求體是請求提交的參數,GET?方法已經在?URL?中指明了參數,所以提交時沒有數據。POST?方法提交的參數在請求體中。

HTTP請求消息報文格式

2.響應報文
狀態行:狀態行由協議版本,狀態碼,狀態碼描述三部分組成。
響應頭:響應頭與請求頭部類似,為響應報文添加了一些附加信息。
空行:響應頭部的最后會有一個空行,表示響應頭部結束。
響應體:服務器返回的相應?HTML?數據,瀏覽器對其解析后顯示頁面。

HTTP請求消息報文格式

本章總結
