HTTP

歷史


互聯(lián)網(wǎng)其實早就有了嚎莉,出現(xiàn)的時間大概是20世紀50-60年代,不過當時互聯(lián)網(wǎng)只用于科研機構(gòu)和軍事方面动壤。

1965年萝喘,Email被發(fā)明出來,在當時看來是一個和牛逼的應用琼懊,人們不需要在寫信阁簸,不需要郵遞員,一個信息可以瞬間發(fā)給一個千里以外的人哼丈。

1970年-1975年启妹,Email被廣泛使用,人們通過ftp下載Email里面的內(nèi)容

1980年-1990年醉旦,人們迫切需要一種更好的上網(wǎng)方式饶米,當時提出了很多方案,比如HTTP车胡,Gopher檬输,后來因為HTTP簡單易用,勝出了匈棘,從那以后我們就開始使用HTTP協(xié)議進行上網(wǎng)了丧慈。

1989年-1992年期間,Tim Berners-Lee主卫,發(fā)明了萬維網(wǎng)WWW(world wide web),一種適應全世界的網(wǎng)絡逃默。
WWW里面主要包含3個東西
1.URI??
2.HTTP協(xié)議
3.HTML

URI


URI的全稱是 UniformResourceIdentifier 中文是?統(tǒng)一資源標識符。
URI 分為 URL 和 URN簇搅,我們一般使用 URL 作為網(wǎng)址完域。

一個統(tǒng)一資源標識(URI)可以是一個統(tǒng)一資源定位符號(URL),也可以是一個統(tǒng)一資源名稱(URN)瘩将,又或者兩者都是吟税。

URN:通過 URN 你可以確定一個「唯一的」資源。
百度的解釋:標識持久性Internet資源姿现。URN 可以提供一種機制肠仪,用于查找和檢索定義特定命名空間的架構(gòu)文件。盡管普通的URL可以提供類似的功能建钥,但是在這方面藤韵,URN 更加強大并且更容易管理,因為 URN 可以引用多個 URL熊经。
有點抽象泽艘,我的理解是URN就是一個身份證,它對于我們每個人(資源)來說都是唯一的镐依。

URL:統(tǒng)一資源定位符
百度解釋:統(tǒng)一資源定位符是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示匹涮,是互聯(lián)網(wǎng)上標準資源的地址』笨牵互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL然低,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。
我的理解是,它類似一個地址雳攘,它可以定位一個資源某個時間點在那里带兜。比如我上班的時候,我(資源)的位置就是公司吨灭,但是我(資源)下班我就回家了刚照,就不在公司,所以說url是定位符喧兄,它不是唯一的无畔。

URL的組成:

url其實就是我們俗稱的網(wǎng)址

其實還有端口80沒寫,但為了方便吠冤,我們一般不寫80端口號浑彰,除了一些特殊的端口號,要寫

http://www.baidu.com??
.com是頂級域名? baidu是二級域名 www是三級域名

HTTP


超文本傳輸協(xié)議(HTTP拯辙,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議郭变。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法薄风。1960年美國人Ted Nelson構(gòu)思了一種通過計算機處理文本信息的方法饵较,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標準架構(gòu)的發(fā)展根基。Ted Nelson組織協(xié)調(diào)萬維網(wǎng)協(xié)會(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force )共同合作研究遭赂,最終發(fā)布了一系列的RFC循诉,其中著名的RFC 2616定義了HTTP 1.1。
上面是百度的解釋 撇他,我的理解是HTTP協(xié)議茄猫,就是教客戶端和服務器 ,這兩臺電腦怎么傳輸(對話)的

HTML


服務器接受到客戶端瀏覽器的一個請求困肩,會給客戶端機子一個響應划纽,這個響應就是HTML,瀏覽器接收到這個響應锌畸,然后翻譯出來給我們看勇劣。所以HTML就是讓我們可以讀懂一個頁面的東西
總結(jié):URI是讓我們可以訪問一個頁面,HTTP是教服務器和客戶端怎么對話潭枣,HTML是讓我們可以讀懂一個頁面比默。

Lee除了發(fā)明了這三樣東西,還動手做了世界上第一個服務器盆犁,第一個瀏覽器命咐,和第一個網(wǎng)頁(info.cern.ch)據(jù)說這個網(wǎng)頁現(xiàn)在都還可以訪問。


DNS


DNS(Domain Name System谐岁,域名系統(tǒng))醋奠,因特網(wǎng)上作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫榛臼,能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的IP數(shù)串窜司。通過主機名沛善,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協(xié)議運行在UDP協(xié)議之上例证,使用端口號53路呜。在RFC文檔中RFC 2181對DNS有規(guī)范說明迷捧,RFC 2136對DNS的動態(tài)更新進行說明织咧,RFC 2308對DNS查詢的反向緩存進行說明。
我的理解是漠秋,DNS就是一個服務器笙蒙,因為我們一般上網(wǎng)都是輸入域名(因為域名好記啊)庆锦,但是實際上我們要訪問的服務器是一個IP捅位,DNS服務器的作用就是把我們輸入的域名翻譯成對應的IP,讓我們能訪問服務器搂抒。


當我們輸入一個url(網(wǎng)址)按下回車的時候發(fā)生了什么艇搀?



1.先在瀏覽器緩存里面找對應的ip,如果找不到求晶,就在本地dns找對應的ip焰雕,如果還找不到,就到電信/聯(lián)通的服務器(DNS服務器)找對應的ip

2.得到對應的ip

3.往Server(服務器)發(fā)送一個請求 芳杏,并且由80端口接受

4.Server(服務器)收到請求矩屁,并且做出響應了,給Client(客戶)發(fā)送了一個HTML格式的文件

5.Client(客戶)的瀏覽器下載HTML格式的文件爵赵,并由瀏覽器把html翻譯出來

6.網(wǎng)頁呈現(xiàn)出來

Server(服務器) + Client(客戶) + HTTP(協(xié)議:告訴服務器和客戶怎么說話)

Server(服務器)
1.上面有很多端口吝秕,每個端口只做一件事。(0-2048)都是制定了做某些事情的空幻,比如21是做ftp的烁峭,443是做https端口,1080是代理端口秕铛,80是http端口

Client(客戶)
1.發(fā)起請求 2.下載服務器返回的內(nèi)容约郁,并翻譯出來,展現(xiàn)頁面

HTTP(協(xié)議)
告訴服務器和客戶怎么說話

請求的事例


在gitbash里面輸入下面的命令

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"? ?//向百度發(fā)送一個請求?

請求的內(nèi)容為

GET / HTTP/1.1? ?//GET是獲得的意思? ? /表示根目錄? ?HTTP協(xié)議類型? ?1.1 是協(xié)議的版本
翻譯: 獲得 根目錄 用的是HTTP協(xié)議 版本是1.1
Host: www.baidu.com? ?Host的意思是主機 如捅,
翻譯:我訪問的主機是www.baidu.com
User-Agent: curl/7.54.0
翻譯:我用的軟件是curl? 版本好是7.54.0
Accept: */*
翻譯:我接受你返回給我的任何東西
Frank: xxx? //這個沒意義棍现,無視就行了?

響應的內(nèi)容

< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: Keep-Alive < Content-Length: 2443? ? //? ?響應的大小
< Content-Type: text/html? ? //? ? 響應的類型
< Date: Sun, 26 Nov 2017 10:40:22 GMT
< Etag: "58860421-98b"
< Last-Modified: Mon, 23 Jan 2017 13:24:49 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

GET 獲取內(nèi)容? ?
POST 上傳內(nèi)容 登陸某網(wǎng)站的時候
PUT 更新 整體更新
PATCH 更新 局部更新
Delete 刪除
一般發(fā)情命令的請求就是這些? POST是在輸入賬號密碼的時候用的 ,如圖

POST命令是在輸入賬號密碼登陸時候镜遣,發(fā)出的請求己肮,這時候我們看請求士袄,GET變成了POST,F(xiàn)rom Data里面就是我們上傳到系統(tǒng)的字符串(賬號和密碼)谎僻。

請求的格式


1 動詞 路徑 協(xié)議/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
?4 要上傳的數(shù)據(jù)

請求最多包含四部分娄柳,最少包含三部分。(也就是說第四部分可以為空)

第三部分永遠都是一個回車(\n)

動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等

這里的路徑包括「查詢參數(shù)」艘绍,但不包括「錨點」

如果你沒有寫路徑赤拒,那么路徑默認為 /

第 2 部分中的 Content-Type 標注了第 4 部分的格式

響應的格式


1 協(xié)議/版本號 狀態(tài)碼 狀態(tài)解釋
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下載的內(nèi)容

格式跟請求的格式差不多。第3部門用于都是回車诱鞠,第4部分就是服務器返給你的內(nèi)容挎挖,內(nèi)容的大小和類型,在第二部里面由說明航夺。

狀態(tài)碼一般是要背的蕉朵,常見的由下面幾種

狀態(tài)碼要背,是服務器對瀏覽器說的話

1xx 不常用

2xx 表示成功

3xx 表示滾吧

4xx 表示你丫錯了

5xx 表示好吧阳掐,我錯了


用 Chrome 查看響應


打開 Network

輸入網(wǎng)址

選中第一個響應

查看 Response Headers始衅,點擊「view source」,點擊「view source」缭保,點擊「view source」

你會看到響應的前兩部分

查看 Response 或者 Preview汛闸,你會看到響應的第 4 部分


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艺骂,隨后出現(xiàn)的幾起案子诸老,更是在濱河造成了極大的恐慌,老刑警劉巖彻亲,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孕锄,死亡現(xiàn)場離奇詭異,居然都是意外死亡苞尝,警方通過查閱死者的電腦和手機畸肆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宙址,“玉大人轴脐,你說我怎么就攤上這事÷丈埃” “怎么了大咱?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長注益。 經(jīng)常有香客問我碴巾,道長,這世上最難降的妖魔是什么丑搔? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任厦瓢,我火速辦了婚禮提揍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煮仇。我一直安慰自己劳跃,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布浙垫。 她就那樣靜靜地躺著刨仑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夹姥。 梳的紋絲不亂的頭發(fā)上杉武,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音佃声,去河邊找鬼艺智。 笑死,一個胖子當著我的面吹牛圾亏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播封拧,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼志鹃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泽西?” 一聲冷哼從身側(cè)響起曹铃,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捧杉,沒想到半個月后陕见,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡味抖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年评甜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仔涩。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡忍坷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出熔脂,到底是詐尸還是另有隱情佩研,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布霞揉,位于F島的核電站旬薯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏适秩。R本人自食惡果不足惜绊序,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一些侍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧政模,春花似錦岗宣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至趁猴,卻和暖如春刊咳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琼开,地道東北人桂塞。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像锌历,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容