HTTP(Hypertext Transfer Protocol)
http 是一種應(yīng)用層協(xié)議野来,可以用來(lái)傳輸超媒體呐籽、文檔等河爹,例如 HTML璃谨。http協(xié)議主要被設(shè)計(jì)用于web瀏覽器和服務(wù)端之間的交流沙庐。http遵循典型的 客戶端-服務(wù)端 模型,客戶端向服務(wù)端發(fā)起一個(gè)請(qǐng)求佳吞,然后等待服務(wù)端響應(yīng)拱雏。http 是無(wú)狀態(tài)的協(xié)議,這意味著服務(wù)器不會(huì)在兩個(gè)http請(qǐng)求之間保留任何數(shù)據(jù)狀態(tài)底扳。由于http請(qǐng)求是基于 TCP/IP層的铸抑,所以它是可靠傳輸協(xié)議。
URI(Uniform Resource Identifier)
http 協(xié)議請(qǐng)求的目標(biāo)就是“資源”衷模,資源可以是一個(gè)文檔鹊汛、一張照片或者其他任何網(wǎng)站上可以看到的數(shù)據(jù)形式蒲赂。每個(gè)資源都可以通過 URI(統(tǒng)一資源標(biāo)識(shí)符)來(lái)唯一的被標(biāo)識(shí)。
URL(Uniform Resource Locator)
最常見的 URI 形式是 統(tǒng)一資源定位符(URL)刁憋,被稱為網(wǎng)址
例如:
https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
URN(Uniform Resource Name)
統(tǒng)一資源名稱是在特定名稱空間中按名稱標(biāo)識(shí)資源的 URI滥嘴。
例如:
urn:isbn:9780141036144
urn:ietf:rfc:7230
協(xié)議
http://
是一種協(xié)議,指出瀏覽器必須使用哪種協(xié)議進(jìn)行通訊至耻。通常協(xié)議是 http
或 https
氏涩。web 一般只使用 http
或 https
協(xié)議,當(dāng)然除此之外還有 mailto:
郵箱協(xié)議 ftp:
文件傳輸協(xié)議有梆,瀏覽器根據(jù)協(xié)議來(lái)處理請(qǐng)求的數(shù)據(jù)是尖。
域名(Domaine Name)
域名(例如:www.baidu.com)指出那個(gè) web 服務(wù)器被請(qǐng)求。另外泥耀,也可以直接使用 ip地址 替換域名進(jìn)行請(qǐng)求服務(wù)端饺汹,只是用起來(lái)不大方便,且ip地址不易記憶痰催。
端口(Port)
:80
是web服務(wù)器http
默認(rèn)的端口兜辞,:443
是https的默認(rèn)端口。
資源路徑(Path)
/path/to/myfile.html
是web服務(wù)器上的資源文件夸溶。在web早期的時(shí)候逸吵,這些路徑都是web服務(wù)器上物理存在的html
文件。現(xiàn)在這些不再是真實(shí)存在的文件html
文件缝裁,真實(shí)的文件可能存放在數(shù)據(jù)庫(kù)中扫皱。
Query
URL 附帶的請(qǐng)求參數(shù) ?key1=value1&key2=value2
,這些參數(shù)是一系列的 key/value 對(duì)并且用 &
分開捷绑,web service 可以在返回?cái)?shù)據(jù)給客戶端之前利用這些額外的參數(shù)做一些其它事情(比如:通過傳來(lái)的用戶id來(lái)區(qū)分用戶)韩脑。
分段(Fragment)
Anchor(錨)是資源的一部分,錨就像是資源里的“書簽”粹污,指示瀏覽器顯示內(nèi)容的位置段多。例如在 HTML 中,瀏覽器將要滾動(dòng)到設(shè)置的錨點(diǎn)處壮吩,在vedio或者music中进苍,瀏覽器將會(huì)到指定的時(shí)間點(diǎn)準(zhǔn)備播放。注意在HTML中 #
后面的內(nèi)容不會(huì)被發(fā)送到服務(wù)端鸭叙。