3-2:HTTP协议之URI(URL)和HTTP基本概念及其特征
文章目錄
- 一:URI和URL
- (1)URI和URL分別是什么
- (2)URL的格式(網(wǎng)址)
- 二:HTTP協(xié)議基本概念
- (1)HTTP協(xié)議是什么
- (2)什么是超文本傳輸協(xié)議
- (3)HTTP的基本特征
- A:無連接
- B:無狀態(tài)
- C:簡單快速
一:URI和URL
(1)URI和URL分別是什么
- URI(Uniform Resource Identifier):統(tǒng)一資源標(biāo)識(shí)符——表示的是web上每一種可用的資源,如 HTML文檔、圖像、視頻片段、程序等都由一個(gè)URI進(jìn)行標(biāo)識(shí)的。
- URL(Uniform Resource Locator):統(tǒng)一資源定位符——URL是Internet上描述信息資源的字符串,主要用在各種WWW客戶程序和服務(wù)器程序上。
URL是URI的一個(gè)子集,URL是URI概念的一種實(shí)現(xiàn)方式。
URI和URL都定義了資源是什么,但是URL還定義了如何訪問資源,URL是一種具體的URL。他不僅唯一標(biāo)識(shí)資源,而且還提供了定位該資源的信息。因此URL是一種語義上的抽象概念,可以是絕對(duì)的也可以是相對(duì)的,但是URL必須提供絕對(duì)的定位信息
(2)URL的格式(網(wǎng)址)
URL的格式如下
- 協(xié)議方案名:http或https協(xié)議
- 登錄信息(認(rèn)證):指定用戶名和密碼作為服務(wù)器端獲取資源時(shí)的必要信息,此項(xiàng)為可選項(xiàng),瀏覽器顯示時(shí)會(huì)隱藏
- 服務(wù)器地址:訪問服務(wù)器時(shí)必須指明服務(wù)器地址,上圖給出的只是方便人們記憶的網(wǎng)址,實(shí)際會(huì)由DNS(域名解析器)進(jìn)行解析
- 服務(wù)器端口號(hào):指定服務(wù)器連接的網(wǎng)絡(luò)端口號(hào),也是一個(gè)可選項(xiàng),其中有些端口號(hào)非常有名,屬于強(qiáng)綁定了,如果用戶省略則會(huì)使用默認(rèn)的端口號(hào)
- 帶層次的文件路徑:指定服務(wù)器的文件路徑來定位指定的資源。和UNIX系統(tǒng)目錄結(jié)構(gòu)類似,但這不是根目錄,而是一個(gè)部署好的web根目錄。
- (注意"?“好前面就是基本的URL格式,如果需要傳入?yún)?shù),在”?"號(hào)后面加入,以K-V形式傳入)
- 查詢字符串:百度搜索時(shí)就按照這種方式傳參
另外,可以發(fā)現(xiàn)像/ ? @ :這樣的字符在URL中是具有特殊的意義的,因此在傳參時(shí)如果需要傳入這樣的字符,就必須對(duì)其進(jìn)行轉(zhuǎn)義。轉(zhuǎn)義的過程稱為urlencode,其逆過程稱為urldecode
如下,如果輸入普通字符,可以發(fā)現(xiàn)關(guān)鍵字未被轉(zhuǎn)義
如果輸入特殊字符,發(fā)現(xiàn)進(jìn)行了轉(zhuǎn)義
- 轉(zhuǎn)義規(guī)則:將需要轉(zhuǎn)義的字符先轉(zhuǎn)為16進(jìn)制,然后從右向左取4位(不足4位直接處理),每2位做一位,在前面加上%,編成“%XY”的格式
因此在編寫服務(wù)器時(shí),面對(duì)這些特殊字符,一定要做編碼處理,下面是一個(gè)在線的編碼/解碼工具
- urlencode工具
二:HTTP協(xié)議基本概念
(1)HTTP協(xié)議是什么
HTTP協(xié)議(HyperText Transfer Protoco)即超文本傳輸協(xié)議,屬于網(wǎng)絡(luò)分層中的應(yīng)用層協(xié)議
(2)什么是超文本傳輸協(xié)議
1:協(xié)議
這個(gè)在這里就不多解釋了,學(xué)習(xí)網(wǎng)絡(luò)對(duì)于協(xié)議這二字解釋的已經(jīng)夠多了
2:傳輸
HTTP協(xié)議是一個(gè)雙向協(xié)議。
我們?cè)谏暇W(wǎng)沖浪時(shí),瀏覽器是請(qǐng)求方 A ,百度網(wǎng)站就是應(yīng)答方 B。雙方約定用HTTP 協(xié)議來通信,于是瀏覽器把請(qǐng)求數(shù)據(jù)發(fā)送給網(wǎng)站,網(wǎng)站再把?些數(shù)據(jù)返回給瀏覽器,最后由瀏覽器渲染在屏幕,就可以看到圖片、視頻了。
3:超文本
再來理解「超文本」,它就是超越了普通文本的文本,它是文字、圖片、視頻等的混合體,最關(guān)鍵有超鏈接,能從?個(gè)超文本跳轉(zhuǎn)到另外?個(gè)超文本
因此對(duì)于HTTP協(xié)議可以總結(jié)為:HTTP 是?個(gè)在計(jì)算機(jī)世界里專門在「兩點(diǎn)」之間「?jìng)鬏敗刮淖帧D片、音頻、視頻等「超文本」數(shù)據(jù)的「約定和規(guī)范」
(3)HTTP的基本特征
A:無連接
HTTP本身是基于TCP的,而TCP又是面向連接的,但HTTP卻是無連接的,這似乎有點(diǎn)矛盾。
實(shí)際上,HTTP既然建立與TCP之上,所以其本身是不關(guān)心TCP通信細(xì)節(jié)的,TCP是否是面向連接的與我HTTP是沒有半毛錢關(guān)系的。
而且,當(dāng)TCP連接建立成功之后,HTTP是沒有必要在應(yīng)用層再建立一個(gè)連接的,所以TCP建立好之后,HTTP直接向?qū)Ψ桨l(fā)HTTP請(qǐng)求(request)就可以了。
B:無狀態(tài)
TCP很明顯是有狀態(tài)的,但是HTTP是沒有狀態(tài)的。
HTTP是一種不保存狀態(tài)協(xié)議,其自身不對(duì)請(qǐng)求和相應(yīng)之間的通信狀態(tài)進(jìn)行保存,也就是說在HTTP這個(gè)級(jí)別,協(xié)議對(duì)于發(fā)送過的請(qǐng)求或相應(yīng)都不會(huì)做持久化處理
使用 HTTP 協(xié)議,每當(dāng)有新的請(qǐng)求發(fā)送時(shí),就會(huì)有對(duì)應(yīng)的新響應(yīng)產(chǎn)生。協(xié)議本身并不保留之前一切的請(qǐng)求或響應(yīng)報(bào)文的信息。這是為了更快地處理大量事務(wù),確保協(xié)議的可伸縮性,而特意把 HTTP 協(xié)議設(shè)計(jì)成如此簡單的
但是這樣的簡單會(huì)帶了一個(gè)很大的問題——就是它不會(huì)記錄任何用戶信息,這樣就意味著你登錄淘寶,剛登上就斷了,無法保持登錄狀態(tài)。為了解決這個(gè)問題就引入了記錄基本信息的技術(shù):cookie和session
C:簡單快速
HTTP在剛出來時(shí)是基于短連接的,用于傳輸html,img,css等文件,后續(xù)版本也支持了長連接。
總結(jié)
以上是生活随笔為你收集整理的3-2:HTTP协议之URI(URL)和HTTP基本概念及其特征的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (计算机组成原理)第二章数据的表示和运算
- 下一篇: HDU 5704