01+02_透視HTTP協(xié)議_HTTP是什么?又不是什么?

HTTP是什么

就是超文本傳輸協(xié)議,Hyper Text Transfer Protocol

理解部分

我們就分成是三個(gè)詞語,超文本,傳輸和協(xié)議。

第一點(diǎn),那協(xié)議是什么?

協(xié)議的特點(diǎn):
第1點(diǎn),協(xié)議必須要有兩個(gè)或多個(gè)參與者也就是,協(xié)
第2點(diǎn),協(xié)議是對(duì)參與者的一種行為約定和規(guī)范,也就是議,比如說,要明確規(guī)定,各方的“責(zé),權(quán),利”,約定該做什么,不該做什么,先做什
么,后做什么。做錯(cuò)了怎么辦,有沒有補(bǔ)救措施。

總結(jié):
所以基于這兩點(diǎn),HTTP是一個(gè)用在計(jì)算機(jī)世界里面的協(xié)議。他使用計(jì)算機(jī)能夠理解的語言確立了一種計(jì)算機(jī)之間交流通信的規(guī)范以及相關(guān)的各種控制和錯(cuò)誤處理方式。

第二點(diǎn),傳輸

HTTP是一個(gè)傳輸協(xié)議,那什么是傳輸協(xié)議?其實(shí)就是把一堆東西從A點(diǎn)搬到B點(diǎn)或者從B點(diǎn)搬到A點(diǎn)?;谶@個(gè)我們就可以看出HTTP還有兩個(gè)特點(diǎn),

1)HTTP協(xié)議是一個(gè)雙向協(xié)議

也就是說有兩個(gè)最基本的參與者a和b從a開始到b結(jié)束,數(shù)據(jù)在a和b之間雙向而不是單向流動(dòng), 通常我們把先發(fā)起傳輸動(dòng)作的a叫做請(qǐng)求方,然后接到傳輸?shù)腷叫做應(yīng)答方或者響應(yīng)方。

然后我們最常見的網(wǎng)上沖浪來舉例子,瀏覽器就是請(qǐng)求方A,像新浪網(wǎng)易這些網(wǎng)站就是應(yīng)答方B。雙方約定用HTTP協(xié)議來通信,于是瀏覽器把一些數(shù)據(jù)發(fā)送給網(wǎng)站,網(wǎng)站再把一些數(shù)據(jù)發(fā)回給瀏覽器,最后呈現(xiàn)在屏幕上。

2)允許有中間方

數(shù)據(jù)雖然是在a和b之間傳輸,但并沒有限制,只有a和b這兩個(gè)角色允許中間有中轉(zhuǎn)或者接力。這樣傳輸方就成了A到B,變成了AxyzB。這樣看來,從A到B的傳輸過程中它就可以存在多個(gè)中間人,而這些中間人也都遵循HTTP協(xié)議只要不打擾基本的數(shù)據(jù)傳輸,就可以添加任意的額外功能,例如安全認(rèn)證、數(shù)據(jù)壓縮、編碼轉(zhuǎn)換等等,以優(yōu)化整個(gè)傳輸過程。

總結(jié):
HTTP是一個(gè)在計(jì)算機(jī)世界里專門用來在兩點(diǎn)之間傳輸數(shù)據(jù)的約定和規(guī)范。

第三點(diǎn),超文本

第1點(diǎn),我們要說的是所謂文本,文本就是表示HTTP傳輸?shù)?,不是TCP/UDP這些底層協(xié)議里被占的二進(jìn)制包,而是完整有意義的數(shù)據(jù)??梢员粸g覽器服務(wù)器這樣的上層應(yīng)用程序處理。

所以在互聯(lián)網(wǎng)早期的時(shí)候,文本只是簡(jiǎn)單的字符文字而發(fā)展到現(xiàn)在文本的含義已經(jīng)被大大的擴(kuò)展了,比如圖片、音頻、視頻、壓縮包在HTTP里面都可以算作是文本。

所以呢,超文本它其實(shí)就是超越了普通文本的文本,它是文字圖片,音頻和視頻等的混合體,最關(guān)鍵的是含有超鏈接,能夠從一個(gè)超文本跳到另外一個(gè)超文本,形成復(fù)雜的,非線性的網(wǎng)狀結(jié)構(gòu)關(guān)系。

對(duì)于超文本,我們最熟悉的就是html本身只是純文字文件,但內(nèi)部用很多標(biāo)簽定義了對(duì)圖片,音頻視頻等的鏈接,在經(jīng)過瀏覽器的解釋,呈現(xiàn)在我們面前的就是一個(gè)含有多種視頻信息的頁面。

大總結(jié):*
HTTP是一個(gè)在計(jì)算機(jī)世界里專門在兩點(diǎn)之間傳輸文字、圖片、音頻和視頻等超文本數(shù)據(jù)的約定和規(guī)范。

HTTP不是什么

接下來我們來看一下,那HTTP它不是什么。首先HTTP是一個(gè)協(xié)議,是一種計(jì)算機(jī)間通信的規(guī)范,所以它不存在單獨(dú)的實(shí)體,。它不是瀏覽器手機(jī)APP那樣的應(yīng)用程序,也不是windows、Linux那樣的操作系統(tǒng),更不是Apache、Nginx、Tomcat那樣的web服務(wù)器。

但HTTP又與應(yīng)用程序、操作系統(tǒng)、web服務(wù)器密切相關(guān),在他們之間的通信過程中存在,而且又是一種動(dòng)態(tài)的存在,是發(fā)生在網(wǎng)絡(luò)連接、傳輸超文本數(shù)據(jù)時(shí)的一個(gè)動(dòng)態(tài)過程。

HTTP不是互聯(lián)網(wǎng)

HTTP是遍布于全球的許多網(wǎng)絡(luò),互相連接而形成了一個(gè)巨大的國(guó)際網(wǎng)絡(luò),在它的上面存放著各種資源,也對(duì)應(yīng)著各種各樣的協(xié)議。例如超文本資源使用HTTP, 普通文件使用FTP,電子郵件使用SMTP,和POP3等。
所以是互聯(lián)網(wǎng)中的一塊重要拼圖。

HTTP不是編程語言

HTTP它其實(shí)是一種計(jì)算機(jī)和計(jì)算機(jī)溝通交流的語言,我們無法用HTTP來編程。但可以反過來,用編程語言去實(shí)現(xiàn)HTTP,去告訴計(jì)算機(jī)如何用HTTP與外界的通信。
很多流行的編程語言都支持編寫HTTP,比如說Java在Tomcat里編寫Web服務(wù),使用PHP在后端實(shí)現(xiàn)頁面模板渲染,使用JavaScript在前端實(shí)現(xiàn)動(dòng)態(tài)頁面更新。

HTTP不是HTML

所以這里我們要強(qiáng)調(diào)的是HTTP 和HTML不一。
HP ML是一種超文本的載體,是一種標(biāo)記語言,使用各種標(biāo)簽來描述文字圖片超鏈接的資源,并且可以嵌入css JavaScript等技術(shù),實(shí)現(xiàn)復(fù)雜的動(dòng)態(tài)效果。所以他們次數(shù)來說,在互聯(lián)網(wǎng)上HTTP傳輸最多的可能就是ht ml,但要說數(shù)據(jù)量就要往后排。圖片音頻視頻這些類型的資源顯然會(huì)更大。

HTTP不是一個(gè)孤立的協(xié)議

與HTTP常用協(xié)議舉例

小結(jié)

  1. HTTP是一個(gè)用在計(jì)算機(jī)世界里的協(xié)議,它確立了一種計(jì)算機(jī)之間交流通信的規(guī)范以及相關(guān)的各種控制和錯(cuò)誤處理方式。
  2. HTTP專門用來在兩點(diǎn)之間傳輸數(shù)據(jù),不能用于廣播尋址或路由
  3. HTTP傳輸?shù)氖俏淖謭D片,音頻視頻等超文本數(shù)據(jù),
  4. HTTP是構(gòu)建互聯(lián)網(wǎng)的重要基礎(chǔ)技術(shù),它沒有實(shí)體,它依賴于許多其他的技術(shù)來實(shí)現(xiàn),但同時(shí)許多技術(shù)也需要依賴他。

額外

  1. HTTP是在計(jì)算機(jī)世界里,用于兩點(diǎn)之間之間傳輸超文本的協(xié)議。這兩點(diǎn)并不限定于是服務(wù)器還是瀏覽器??梢允菑臑g覽器到服務(wù)器,也可以從服務(wù)器到服務(wù)器,也可以是瀏覽器到瀏覽器。并不能描述成從服務(wù)器到瀏覽器。
HTTP相關(guān)框架
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容