一、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>
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)。
狀態碼首位 | 范圍 | 含義 |
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xx | 300-305 | 重定向 |
4xx | 400-415 | 客戶端錯誤 |
5xx | 500-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訪問的過程:
-
建立連接:客戶端發起與服務器的TCP連接,通過三次握手建立可靠的通信通道。
-
接收請求:服務器監聽到客戶端發起的TCP連接,并接收到HTTP請求報文。
-
處理請求:服務器解析HTTP請求報文,提取請求方法、路徑、頭部信息等。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 根據請求內容執行相應的服務器端處理,可能包括調用后端應用程序、查詢數據庫、讀取文件等。
-
訪問資源:服務器根據請求訪問相應的資源,如HTML文件、圖像、數據庫等。
-
構建響應報文:服務器生成HTTP響應報文,包括狀態碼、響應頭部和響應體。
-
發送響應報文:服務器通過之前建立的TCP連接將HTTP響應報文發送回客戶端。
-
記錄日志:服務器記錄訪問日志,包括客戶端IP地址、訪問時間、請求方法、請求路徑、HTTP狀態碼等信息。
1、客戶端通過域名進行訪問,先進行DNS域名解析。
2、之后客戶端請求與web服務器建立TCP連接(三次握手)。
3、建立連接后,客戶端向web服務器發送一個HTTP請求。
4、服務器響應HTTP請求,客戶端的瀏覽器得到HTML代碼。
5、瀏覽器解析HTML代碼,并請求HTML代碼中的資源。(瀏覽器拿到HTML文件后,開始解析HTML代碼,遇到靜態資源時,就向服務器去請求下載。)
6、斷開TCP連接(四次揮手),瀏覽器對頁面進行渲染呈現給用戶。