HTTP

HTTP

HTTP全稱 HyperText Transfer Protocol 即超文本傳輸協(xié)議
是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。HTTP是萬維網(wǎng)的數(shù)據(jù)通信的基礎(chǔ)。
HTML 全稱:HyperText Markup Language超文本標(biāo)記語言
是一種用于創(chuàng)建網(wǎng)頁的標(biāo)準(zhǔn)標(biāo)記語言。
URI 全稱:Uniform Resource Identifier統(tǒng)一資源標(biāo)識(shí)符
URI分為URLURN 我們一般使用URL作為網(wǎng)址
URN全稱:Uniform Resource Name統(tǒng)一資源名稱
通過URN可以確定一個(gè)【唯一的】資源
URL 全稱:Uniform Resource Locator統(tǒng)一資源定位符
通過URL可以確定一個(gè)【唯一的】地址(網(wǎng)址)
https://www.baidu.com/s?wd=hello&rsv_spt=1#5 就是一個(gè) URL,通過 URL 你可以確定一個(gè)「唯一的」地址(網(wǎng)址)。
[圖片上傳失敗...(image-7e3b8e-1525178150562)]

域名

www.baidu.com為例

  • .com.cn.tt 為一級(jí)域名(頂級(jí)域名)。
  • baidu.com為二級(jí)域名。
  • www.baidu.com為三級(jí)域名。
  • www.baidu.combaidu.com共有一個(gè)二級(jí)域名。

DNS

DNS 全稱 Domain Name System網(wǎng)域名稱系統(tǒng)。
它作為將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng)。DNS使用TCPUDP端口53
DNS會(huì)根據(jù)一個(gè)域名返回一個(gè)IP
在本地設(shè)置hosts可以繞過DNS。使用命令sudo vi /etc/hosts設(shè)置。
[圖片上傳失敗...(image-876ce1-1525178150562)]

  • 每一個(gè)電腦都有很多端口,每一個(gè)端口只做一件事情。從0到2048都是指定做某事情。80端口是用來服務(wù)HTTP協(xié)議的。
  • 瀏覽器負(fù)責(zé)發(fā)起請求
  • 服務(wù)器在80端口接受請求
  • 服務(wù)器負(fù)責(zé)返回內(nèi)容
  • 瀏覽器負(fù)責(zé)下載相應(yīng)內(nèi)容
  • HTTP的作用是指導(dǎo)瀏覽器和服務(wù)器如何進(jìn)行溝通

HTTP請求

一個(gè)HTTP請求報(bào)文由請求行、請求頭部、空行和請求數(shù)據(jù)4個(gè)部分組成
請求的格式

1 動(dòng)詞 路徑 協(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ù)
  1. 請求最多包含四部分,最少包含三部分。(也就是說第四部分可以為空)
  2. 第三部分永遠(yuǎn)都是一個(gè)回車(\n)
  3. 動(dòng)詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  4. 這里的路徑包括「查詢參數(shù)」,但不包括「錨點(diǎn)」
  5. 如果你沒有寫路徑,那么路徑默認(rèn)為 /
  6. 第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式

用Chrome發(fā)請求

  1. 在谷歌瀏覽器空白處單擊右鍵,點(diǎn)擊檢查,打開Network
  2. 地址欄輸入網(wǎng)址
  3. 選中第一個(gè)請求
  4. 查看Request Headers,點(diǎn)擊view source將會(huì)看到請求的前兩部分
  5. 查看FormDataPayload將會(huì)看到請求的第四部分(如果有的話)

HTTP響應(yīng)

HTTP響應(yīng)也由四個(gè)部分組成,分別是:狀態(tài)行、消息報(bào)頭、空行、響應(yīng)正文。
響應(yīng)的格式

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

響應(yīng)示例
狀態(tài)碼是服務(wù)器對瀏覽器說的話

  • 1xx:指示信息--表示請求已接收,繼續(xù)處理。
  • 2xx:成功--表示請求已被成功接收、理解、接受。
  • 3xx:重定向--要完成請求必須進(jìn)行更進(jìn)一步的操作。
  • 4xx:客戶端錯(cuò)誤--請求有語法錯(cuò)誤或請求無法實(shí)現(xiàn)。
  • 5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請求。

用Chrome查看響應(yīng)

  1. 打開Network
  2. 輸入網(wǎng)址
  3. 選中第一個(gè)響應(yīng)
  4. 查看Response Headers,點(diǎn)擊view source將會(huì)看到響應(yīng)的前兩部分
  5. 查看Response或者Preview將會(huì)看到響應(yīng)的第四部分。

CURL

在Linux中curl是一個(gè)利用URL規(guī)則在命令行下工作的文件傳輸工具,可以說是一款很強(qiáng)大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱url為下載工具。更多用法可以參考這篇網(wǎng)站

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,345評論 3 82
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,742評論 6 152
  • PS:簡書的網(wǎng)址真不是給人看的。。。我單獨(dú)開了一個(gè)網(wǎng)址可以重定向到我的簡書主頁。博客地址:flutterall.c...
    徐愛卿閱讀 7,117評論 21 97
  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內(nèi)部的一個(gè)子集。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,610評論 0 20
  • HTTP概述 超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最...
    曹淵說創(chuàng)業(yè)閱讀 3,954評論 2 61

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