1990 年,Tim Berners-Lee 發(fā)明了萬(wàn)維網(wǎng)(World Wide Web)。
URL(Uniform Resource Locator)
標(biāo)準(zhǔn)格式:協(xié)議類(lèi)型:[//服務(wù)器地址[:端口號(hào)]][/資源層級(jí)UNIX文件路徑]文件名[?查詢(xún)][#片段ID]
超文本傳輸協(xié)議(HTTP)的統(tǒng)一資源定位符將從因特網(wǎng)獲取信息的五個(gè)基本元素包括在一個(gè)簡(jiǎn)單的地址中:
- 傳送協(xié)議。
- 層級(jí)URL標(biāo)記符號(hào)(為[//],固定不變)
- 訪(fǎng)問(wèn)資源需要的憑證信息(可省略)
- 服務(wù)器澡绩。(通常為域名谅畅,有時(shí)為IP地址)
- 端口號(hào)胚迫。(以數(shù)字方式表示贾铝,若為HTTP的默認(rèn)值“:80”可省略)
- 路徑薯定。(以“/”字符區(qū)別路徑中的每一個(gè)目錄名稱(chēng))
- 查詢(xún)始绍。(GET模式的窗體參數(shù),以“?”字符為起點(diǎn)话侄,每個(gè)參數(shù)以“&”隔開(kāi)亏推,再以“=”分開(kāi)參數(shù)名稱(chēng)與數(shù)據(jù),通常以UTF8的URL編碼年堆,避開(kāi)字符沖突的問(wèn)題)
- 片段吞杭。以“#”字符為起點(diǎn)以http://zh.wikipedia.org:80/w/index.phptitle=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes 為例, 其中:
1 http,是協(xié)議变丧;
2 zh.wikipedia.org芽狗,是服務(wù)器;
3 80锄贷,是服務(wù)器上的網(wǎng)絡(luò)端口號(hào)译蒂;
4 /w/index.php曼月,是路徑谊却;
5 ?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes,是詢(xún)問(wèn)哑芹。
DNS(Domain Name System)
輸入域名,eg: nslookup baidu.com
orping baidu.com
輸出 IP炎辨。
請(qǐng)求與響應(yīng)
- 瀏覽器負(fù)責(zé)發(fā)起請(qǐng)求。2. 服務(wù)器在 80 端口接收請(qǐng)求聪姿。3. 服務(wù)器負(fù)責(zé)返回內(nèi)容(響應(yīng))碴萧。4. 瀏覽器負(fù)責(zé)下載響應(yīng)內(nèi)容。
ps:HTTP 的作用是指導(dǎo)瀏覽器和服務(wù)器如何進(jìn)行溝通末购。
請(qǐng)求的格式
- 動(dòng)詞(GET POST PUT[整體更新] PATCH[局部更新] DELETE HEAD OPTIONS) 路徑(路徑包括「查詢(xún)參數(shù)」破喻,不包括「錨點(diǎn)路徑」默認(rèn)為 /) 協(xié)議/版本
- Key1: value1 Key2: value2 Key3: value3 ...
Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0 - 第三部分永遠(yuǎn)都是一個(gè)回車(chē)(\n)
- 要上傳的數(shù)據(jù)(第四部分可以為空)
響應(yīng)的格式
- 協(xié)議/版本號(hào) 狀態(tài)碼 狀態(tài)解釋
- Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html(遵循 MIME 規(guī)范,標(biāo)注第 4 部分的格式) - 要下載的內(nèi)容
ps:
1xx 信息響應(yīng),不常用
2xx 成功響應(yīng)表示成功
3xx 重定向表示滾吧
4xx 客戶(hù)端錯(cuò)誤表示你丫錯(cuò)了
5xx 服務(wù)端錯(cuò)誤表示好吧,我錯(cuò)了