一、Web基礎(chǔ)
1、域名
1.1、域名的概述
1、域名的概念:
IP地址不易記憶
2、早期使用Hosts文件解析域名:
·主機名稱重復(fù)
·主機維護困難
3、DNS(Domain Name System 域名系統(tǒng)):
·分布式
·層次性
1.2、域名空間結(jié)構(gòu)
·根域
·頂級域
— 組織域
— 國家/地區(qū)域名
·二級域
·FQDN=主機名.DNS后綴
DNS 解析過程 客戶端 -> 本地緩存域名服務(wù)器 -> 根域服務(wù)器 -> 二級域服務(wù)器 -> 子域服務(wù)器 -> 根據(jù)主機名解析出IP (迭代、遞歸)
1.3、域名注冊
·域名注冊時internet中用于解決地址對應(yīng)問題的一種方法
·遵循先申請先注冊原則
·域名注冊步驟
2、網(wǎng)頁的概念
2.1、網(wǎng)頁的概述
1、網(wǎng)頁
·純文本格式文件
·編寫語言為HTML
·在用戶的瀏覽器中被 “翻譯” 成網(wǎng)頁形式顯示出來
2、網(wǎng)站
由一個一個頁面構(gòu)成的,是多個網(wǎng)頁的結(jié)合體
3、主頁
打開網(wǎng)站后出現(xiàn)的第一個網(wǎng)頁稱為網(wǎng)站主頁(或者首頁)
2.2、網(wǎng)址的概述
1、域名
瀏覽網(wǎng)頁時輸入的網(wǎng)址
2、HTTP
用來傳輸網(wǎng)頁的通信協(xié)議
3、URL
是一種萬維網(wǎng)尋扯系統(tǒng)
1、URI和URL的區(qū)別
舉例:
URI可以唯一的標識某一資源, 比如學(xué)號可以唯一標識學(xué)生, 身份證號可以唯一標識一個人等等。
URL是URI的子集, 不僅可以唯一標識一個資源,還能告訴你他在哪。 比如某學(xué)生在5號公寓樓328寢5床, 這就是一個URL。
二、HTML概述
1、HTML超文本標記語言
·Hyper Text Markkup Language
·網(wǎng)頁的 “源碼”
2、瀏覽器: “解釋和執(zhí)行” HTML 源碼的工具
HTML文檔的結(jié)構(gòu)
文件名以 .html 或 .htm 為后綴
網(wǎng)頁基本標簽格式
1、HTML 基本標簽
(1)HTML 語法規(guī)則
HTML標簽采用雙標記符的形式,前后標記符對應(yīng),分別表示標記開始和結(jié)束,標記符中間的內(nèi)容被標簽描述。前標記符由“”表示,結(jié)尾標記符多了一個“/”,由“”表示。
(2)HTML 文件結(jié)構(gòu)
HTML文件最外層由表示,說明該文件是用HTML語言描述的。在它里面是并列的頭標簽()和內(nèi)容標簽(),最基本的
2、HTML 文件結(jié)構(gòu)如下
<html>
<head>網(wǎng)頁的內(nèi)容描述信息</head>
<body>網(wǎng)頁顯示的內(nèi)容</body>
</html>
3、頭標簽中常用標簽
標簽 描述
<title> 定義了文檔的標題
<base> 定義了頁面鏈接標簽的默認鏈接地址
<link> 定義了一個文檔和外部資源之間的關(guān)系
<meta> 定義了 HTML 文檔中的元數(shù)據(jù)
<script> 定義了客戶端的腳本文件
<style> 定義了 HTML 文檔的樣式文件
4、內(nèi)容標簽中常用標簽
標簽 描述
<table> 定義一個表格
<tr> 定義了表格中的一行
<td> 定義了表格中某一行的一列
<img> 定義了一個圖像
<a> 定義了一個超鏈接
<p> 定義了一行
<br> 定義了換行
<font> 定義了字體
<h1> 定義字體大小
三、靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁
1.靜態(tài)網(wǎng)頁
在網(wǎng)站設(shè)計中,純粹HTML格式的網(wǎng)頁通常被稱為“靜態(tài)網(wǎng)頁”,靜態(tài)網(wǎng)頁是標準的HTML文件,它的文件擴展名是.htm、.html。靜態(tài)網(wǎng)頁是網(wǎng)站建設(shè)的基礎(chǔ),早期的網(wǎng)站一般都是由靜態(tài)網(wǎng)頁制作的。靜態(tài)網(wǎng)頁也可以出現(xiàn)各種動態(tài)的效果,如.GIF格式的動畫、FLASH、滾動字幕等。這些“動態(tài)效果”只是視覺上的,與下面將要介紹的動態(tài)網(wǎng)頁是不同的概念。
2.動態(tài)網(wǎng)頁
所謂的動態(tài)網(wǎng)頁,是指跟靜態(tài)網(wǎng)頁相對的一種網(wǎng)頁編程技術(shù)。靜態(tài)網(wǎng)頁,隨著HTML代碼的生成,頁面的內(nèi)容和顯示效果就基本上不會發(fā)生變化了——除非是修改頁面代碼。而動態(tài)網(wǎng)頁則不然,頁面代碼雖然沒有變,但是顯示的內(nèi)容卻是可以隨著時間、環(huán)境或者數(shù)據(jù)庫操作的結(jié)果而發(fā)生改變的。動態(tài)網(wǎng)頁URL的后綴不是.htm、.html、.shtml、.xml等靜態(tài)網(wǎng)頁的常見網(wǎng)頁制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式為后綴,并且在動態(tài)網(wǎng)頁網(wǎng)址中有一個標志性的符號——“?”。
動態(tài)網(wǎng)頁是基本的html語法規(guī)范與Java、PHP、C#等高級程序設(shè)計語言、數(shù)據(jù)庫編程等多種技術(shù)的融合,以期實現(xiàn)對網(wǎng)站內(nèi)容和風格的高效、動態(tài)和交互式的管理。因此,從這個意義上來講,凡是結(jié)合了HTML以外的高級程序設(shè)計語言和數(shù)據(jù)庫技術(shù)進行的網(wǎng)頁編程技術(shù)生成的網(wǎng)頁都是動態(tài)網(wǎng)頁。
3.動態(tài)網(wǎng)頁語言
早期的動態(tài)網(wǎng)頁主要采用通用網(wǎng)關(guān)接口 CGI(Common Gateway Interface)技術(shù),雖然 CGI 技術(shù)已經(jīng)發(fā)展成熟而且功能強大, 但由于編程困難、效率低下、修改復(fù)雜,所以有逐漸被新技術(shù)取代的趨勢。
3.1、目前常用的動態(tài)網(wǎng)頁編程語言
●PHP
即 Hypertext Preprocessor(超文本預(yù)處理器),它是當今 Internet 上最為火熱的腳本語言,其語法借鑒了 C、Java、PERL 等語言,但只需要很少的編程知識你就能使用 PHP 建立一個真正交互的 Web 站點。
●JSP
即 Java Server Pages(Java 服務(wù)器頁面),它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技術(shù),是基于 Java Servlet 以及整個 Java 體系的 Web 開發(fā)技術(shù)。
●Python
是一種面向?qū)ο?、跨平臺的動態(tài)類計算機程序設(shè)計語言,最初被設(shè)計用于編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用于獨立的大型項目開發(fā)。
●Ruby
是一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O(shè)計)腳本語言,在 20 世紀 90年代由日本人松本行弘(Yukihiro Matsumoto) 開發(fā),遵守GPL 協(xié)議和Ruby License。它的靈感與特性來自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 語言。
四、HTTP 協(xié)議概述
HTTP協(xié)議采用了請求/響應(yīng)模型。客戶端向服務(wù)器發(fā)送一個請求,請求頭包含請求的方法、URL、協(xié)議版本、以及包含請求修飾符、客戶信息和內(nèi)容的類似于MIME的消息結(jié)構(gòu)。服務(wù)器以一個狀態(tài)行作為響應(yīng),響應(yīng)的內(nèi)容包括消息協(xié)議的版本,成功或者錯誤編碼加上服務(wù)器信息、實體元信息以及可能的實體內(nèi)容。
4.1、http協(xié)議版本
http/1.0:純文本傳輸;http響應(yīng)后會立即關(guān)閉TCP連接;支持http頭部信息(比如http協(xié)議版本號,狀態(tài)碼等)
http/1.1:支持長連接(連接保持,持久連接)和管道機制(在一TCP連接中實現(xiàn)多個http請求和響應(yīng))
http/2.0:二進制傳輸;支持長連接和完全多路復(fù)用(在一個TCP連接中同時發(fā)送多個請求,且不用按照順序一一對應(yīng));
支持網(wǎng)頁頭部壓縮,支持服務(wù)端主動推送
http/3.0:基于UDP協(xié)議的
4.2、http請求方法
HTTP 方法 | 描述 |
---|---|
GET | 對服務(wù)器資源獲取的簡單請求 |
PUT | 向服務(wù)器提交數(shù)據(jù),以修改數(shù)據(jù) |
DELETE | 刪除服務(wù)器上的某些資源 |
POST | 用于發(fā)送包含用戶提交數(shù)據(jù)的請求 |
HEAD | 請求頁面的首部,獲取資源的元信息 |
1、GET請求會向數(shù)據(jù)庫發(fā)索取數(shù)據(jù)的請求,從而來獲取信息,該請求就像數(shù)據(jù)庫的select操作一樣,只是用來查詢一下數(shù)據(jù),不會修改、增加數(shù)據(jù),不會影響資源的內(nèi)容,即該請求不會產(chǎn)生副作用。無論進行多少次操作,結(jié)果都是一樣的。
2、與GET不同的是,PUT請求是向服務(wù)器端發(fā)送數(shù)據(jù)的,從而改變信息,該請求就像數(shù)據(jù)庫的update操作一樣,用來修改數(shù)據(jù)的內(nèi)容,但是不會增加數(shù)據(jù)的種類等,也就是說無論進行多少次PUT操作,其結(jié)果并沒有不同。
3、POST請求同PUT請求類似,都是向服務(wù)器端發(fā)送數(shù)據(jù)的,但是該請求會改變數(shù)據(jù)的種類等資源,就像數(shù)據(jù)庫的insert操作一樣,會創(chuàng)建新的內(nèi)容。幾乎目前所有的提交操作都是用POST請求的。
4、DELETE請求顧名思義,就是用來刪除某一個資源的,該請求就像數(shù)據(jù)庫的delete操作
1、GET 和 POST 比較
●GET 方法:從指定的服務(wù)器上獲得數(shù)據(jù)
GET請求能被緩存
GET請求會保存在瀏覽器的瀏覽紀錄里
GET請求有長度的限制
主要用于獲取數(shù)據(jù)
查詢的字符串會顯示在URL后綴中,不安全,比如 http://www.test.com/a.php?Id=123
2、POST 的方法
●POST 方法:提交數(shù)據(jù)給指定服務(wù)器處理
POST請求不能被緩存
POST請求不會保存在瀏覽器的瀏覽紀錄里
POST請求沒有長度限制
查詢的字符串不會顯示在URL中,比較安全
4.3、HTTP協(xié)議報文格式
1、請求報文:請求行(請求方法、請求URL、http協(xié)議版本) 請求頭(鍵值類型的元信息) 請求體(post提交的內(nèi)容)
2、響應(yīng)報文:響應(yīng)行(http協(xié)議版本、狀態(tài)碼、狀態(tài)描述) 響應(yīng)頭(鍵值類型的元信息) 響應(yīng)體(服務(wù)器返回的html數(shù)據(jù))
HTTP 請求流程分析
用戶在瀏覽器輸入URL訪問時,發(fā)起HTTP請求報文,請求中包括請求行、請求頭、請求體,服務(wù)器收到請求后返回響應(yīng)報文,包括狀態(tài)行、響應(yīng)頭、響應(yīng)體。
1.請求報文
請求行:請求行由請求方法、URL 以及協(xié)議版本三部分組成。
請求頭:請求頭為請求報文添加了一些附加信息,由“名/值”對組成,每行一對,名和值之間使用冒號分隔。
空行:請求頭部的最后會有一個空行,表示請求頭部結(jié)束,接下來為請求體,這一行非常重要,必不可少。
請求體:請求體是請求提交的參數(shù),GET 方法已經(jīng)在 URL 中指明了參數(shù),所以提交時沒有數(shù)據(jù)。POST 方法提交的參數(shù)在請求體中。
文章來源:http://www.zghlxwxcb.cn/news/detail-469317.html
常用的請求頭
請求頭 | 描述 |
---|---|
Host | 接受請求的服務(wù)器地址,可以是 IP:端口號,也可以是域名 |
User-Agent | 發(fā)送請求的應(yīng)用程序名稱 |
Connection | 指定與連接相關(guān)的屬性,如ConnectionKeep-Alive |
Accept-Charset | 通知服務(wù)端可以發(fā)送的編碼格式 |
Accept-Encoding | 通知服務(wù)端可以發(fā)送的數(shù)據(jù)壓縮格式 |
Accept-Language | 通知服務(wù)端可以發(fā)送的語言 |
2、響應(yīng)報文
狀態(tài)行:狀態(tài)行由協(xié)議版本,狀態(tài)碼,狀態(tài)碼描述三部分組成。
響應(yīng)頭:響應(yīng)頭與請求頭部類似,為響應(yīng)報文添加了一些附加信息。
空行:響應(yīng)頭部的最后會有一個空行,表示響應(yīng)頭部結(jié)束。
響應(yīng)體:服務(wù)器返回的相應(yīng) HTML 數(shù)據(jù),瀏覽器對其解析后顯示頁面。
文章來源地址http://www.zghlxwxcb.cn/news/detail-469317.html
常見響應(yīng)頭
響應(yīng)頭 | 描述 |
---|---|
Server | 服務(wù)器應(yīng)用程序軟件的名稱和版本 |
Content-Type | 響應(yīng)正文的類型(是圖片還是二進制字符串) |
Content-Length | 響應(yīng)正文長度 |
Content-Charset | 響應(yīng)正文使用的編碼 |
Content-Encoding | 響應(yīng)正文使用的數(shù)據(jù)壓縮格式 |
Content-Language | 響應(yīng)正文使用的語言 |
4.4、響應(yīng)狀態(tài)碼
正常的響應(yīng) 2xx 3xx
異常的響應(yīng) 4xx(客戶端請求異常) 5xx(服務(wù)端響應(yīng)異常)
狀態(tài)碼首位 | 已定義范圍 | 分類 |
---|---|---|
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xx | 300-305 | 重定向 |
4xx | 400-415 | 客戶端錯誤 |
5xx | 500-505 | 服務(wù)器錯誤 |
4.5、HTTP 常見狀態(tài)碼
狀態(tài)碼 | 功能描述 |
---|---|
200 | 一切正常 |
301 | 永久重定向 |
302 | 臨時重定向 |
401 | 用戶名或密碼錯誤 |
403 | 禁止訪問(客戶端IP地址被拒絕) |
404 | 請求的文件不存在 |
414 | 請求URI頭部過長 |
500 | 服務(wù)器內(nèi)部錯誤 |
502 | 無效網(wǎng)關(guān) |
503 | 當前服務(wù)不可用 |
504 | 網(wǎng)關(guān)請求超時 |
到了這里,關(guān)于【web基礎(chǔ)與HTTP協(xié)議】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!