tips
:接下去會在github寫博客请祖,簡書不再更新和修改文章郁竟,歡迎大家逛逛我的新博客點(diǎn)擊查看 橄碾,我會盡量用更容易理解的方式寫好每一篇博客,大家一起學(xué)習(xí)交流??蒋得。
使用 HTTP 協(xié)議訪問 Web
網(wǎng)絡(luò)基礎(chǔ) TCP/IP
通常使用的網(wǎng)絡(luò)(包括互聯(lián)網(wǎng))是在 TCP/IP 協(xié)議族的基礎(chǔ)上運(yùn)作 的。而 HTTP 屬于它內(nèi)部的一個(gè)子集
TCP/IP 的分層管理
TCP/IP 協(xié)議族里重要的一點(diǎn)就是分層窍侧。TCP/IP 協(xié)議族按層次分別分 為以下 4 層:應(yīng)用層县踢、傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層伟件。
應(yīng)用層
應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)硼啤。
TCP/IP 協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù)。比如斧账,F(xiàn)TP(File Transfer Protocol谴返,文件傳輸協(xié)議)和 DNS(Domain Name System煞肾,域 名系統(tǒng))服務(wù)就是其中兩類。
HTTP 協(xié)議也處于該層嗓袱。傳輸層
傳輸層對上層應(yīng)用層籍救,提供處于網(wǎng)絡(luò)連接中的兩臺計(jì)算機(jī)之間的數(shù)據(jù) 傳輸。網(wǎng)絡(luò)層
網(wǎng)絡(luò)層用來處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包渠抹。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位蝙昙。該層規(guī)定了通過怎樣的路徑(所謂的傳輸路線)到達(dá)對方計(jì) 算機(jī),并把數(shù)據(jù)包傳送給對方逼肯。鏈路層
用來處理連接網(wǎng)絡(luò)的硬件部分耸黑。
TCP/IP 通信傳輸流
與 HTTP 關(guān)系密切的協(xié)議 : IP、TCP 和 DNS
負(fù)責(zé)傳輸?shù)?IP 協(xié)議
IP(Internet Protocol)網(wǎng)際協(xié)議位于網(wǎng)絡(luò)層蛋叼。
有人會把“IP”和“IP 地址”搞混焊傅,“IP”其實(shí)是一種協(xié)議的名稱。
IP 協(xié)議的作用是把各種數(shù)據(jù)包傳送給對方狈涮。而要保證確實(shí)傳送到對方 那里狐胎,則需要滿足各類條件。其中兩個(gè)重要的條件是 IP 地址和 MAC 地址
IP 地址指明了節(jié)點(diǎn)被分配到的地址歌馍,MAC 地址是指網(wǎng)卡所屬的固定 地址握巢。
確保可靠性的 TCP 協(xié)議
TCP 位于傳輸層砚哆,提供可靠的字節(jié)流服務(wù)独撇。
TCP 協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割,而且 TCP 協(xié)議能夠 確認(rèn)數(shù)據(jù)最終是否送達(dá)到對方。
為了準(zhǔn)確無誤地將數(shù)據(jù)送達(dá)目標(biāo)處券勺,TCP 協(xié)議采用了三次握手
握手過程中使用了 TCP 的標(biāo)志:SYN和ACK(acknowledgement,確認(rèn)的意思)
負(fù)責(zé)域名解析的 DNS 服務(wù)
DNS(Domain Name System色鸳,域名系統(tǒng))服務(wù)是和 HTTP 協(xié)議一樣位于應(yīng)用層的 協(xié)議社痛。它提供域名到 IP 地址之間的解析服務(wù)。
各種協(xié)議與 HTTP 協(xié)議的關(guān)系
URI 和 URL
與 URI(統(tǒng)一資源標(biāo)識符)相比,我們更熟悉 URL(Uniform Resource Locator吏砂,統(tǒng)一資源定位符)撵儿。
統(tǒng)一資源標(biāo)識符
URI 用字符串標(biāo)識某一互聯(lián)網(wǎng)資源狐血,而 URL 表示資源的地點(diǎn)(互聯(lián) 網(wǎng)上所處的位置)淀歇。可見 URL 是 URI 的子集匈织。
URI 格式
使用 http: 或 https:
等協(xié)議方案名獲取訪問資源時(shí)要指定協(xié)議類型浪默。不 區(qū)分字母大小寫,最后附一個(gè)冒號(:)缀匕。
也可使用 data: 或 javascript: 這類指定數(shù)據(jù)或腳本程序的方案名纳决。
登錄信息(認(rèn)證)
指定用戶名和密碼作為從服務(wù)器端獲取資源時(shí)必要的登錄信息(身份 認(rèn)證)。此項(xiàng)是可選項(xiàng)弦追。
服務(wù)器地址
使用絕對 URI 必須指定待訪問的服務(wù)器地址岳链。地址可以是類似 hackr.jp 這種 DNS 可解析的名稱,或是 192.168.1.1 這類 IPv4 地址 名劲件,還可以是 [0:0:0:0:0:0:0:1] 這樣用方括號括起來的 IPv6 地址名掸哑。
服務(wù)器端口號
指定服務(wù)器連接的網(wǎng)絡(luò)端口號。此項(xiàng)也是可選項(xiàng)零远,若用戶省略則自動(dòng) 使用默認(rèn)端口號苗分。
帶層次的文件路徑
指定服務(wù)器上的文件路徑來定位特指的資源。這與 UNIX 系統(tǒng)的文件目錄結(jié)構(gòu)相似牵辣。 查了下摔癣,macos和Linux兩者都是從UNIX來的。
查詢字符串
針對已指定的文件路徑內(nèi)的資源,可以使用查詢字符串傳入任意參 數(shù)择浊。此項(xiàng)可選戴卜。 片段標(biāo)識符 使用片段標(biāo)識符通常可標(biāo)記出已獲取資源中的子資源(文檔內(nèi)的某個(gè) 位置)琢岩。