日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

01_HTTP协议

發(fā)布時間:2024/9/30 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01_HTTP协议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

      • 前言
      • 1. 概述
      • 2. http請求與http響應(yīng)
        • 2.1 http請求
        • 2.2 http響應(yīng)
      • 3. URL(scheme:[//[user:password@]host[:port]][/]path[?query][#fragment])
        • 3.1 協(xié)議(scheme)
        • 3.2 主機(jī)(host)與端口(port)
        • 3.3 路徑(path)、查詢字符串(?query)、錨點(diǎn)(#fragment)
      • 4. Http請求頭

前言

當(dāng)前大部分的應(yīng)用都是基于B/S架構(gòu)的,而這其中主流的是基于http通信協(xié)議的。所以對于一個web開發(fā)者來說,http協(xié)議的重要性不言而喻。

1. 概述

HTTP協(xié)議是一種被大多數(shù)web應(yīng)用程序所使用的的協(xié)議

  • HTTP 數(shù)據(jù)的收發(fā)是基于TCP/IP協(xié)議的
  • HTTP 數(shù)據(jù)主要是文本,雖然請求體中的中的數(shù)據(jù)可以是二進(jìn)制的

兩個步驟

  • 請求: 客戶機(jī)向服務(wù)器請求文檔。“文檔”可以是任何類型的文件。
  • 響應(yīng): 服務(wù)器用請求的文檔(或備用響應(yīng))響應(yīng)客戶機(jī)請求。

其整個知識點(diǎn)如下:

HTTP協(xié)議是web應(yīng)用開發(fā)的基石

2. http請求與http響應(yīng)

2.1 http請求

一個HTTP請求是純文本內(nèi)容的。它包含三個部分請求行、請求頭、請求體
請求行:這個是http請求的第一行,整個請求行又分為三部分:URL,方法,版本

  • URL:代表請求的文檔
  • 方法:有put, get, delete, head, options, post, tract, connect
  • 版本:該http請求使用http協(xié)議版本,一般有HTTP/1.0 或者 HTTP/1.1

請求頭:允許額外信息的可選行。每一行都是名稱-值對

空行:用于將正文與標(biāo)題分開

請求體:可選字節(jié)(一般用來承擔(dān)業(yè)務(wù)數(shù)據(jù)).

2.2 http響應(yīng)

一個HTTP響應(yīng)也是由文本行組成
狀態(tài)行: 第一行,由三個空格分隔的元素組成。.

  • 版本: 響應(yīng)的HTTP版本
  • 狀態(tài)碼: 一個三位數(shù)代碼
  • 描述: 狀態(tài)碼的文本描述

響應(yīng)頭:允許在客戶機(jī)和服務(wù)器之間交換數(shù)據(jù)的可選行。

響應(yīng)體: 必須用空行與標(biāo)題分隔的可選行

3. URL(scheme:[//[user:password@]host[:port]][/]path[?query][#fragment])

我們可以把因特網(wǎng)當(dāng)做一個巨大的,正在擴(kuò)張的城市。這個城市中所有的東西都應(yīng)該有一個標(biāo)準(zhǔn)化的名字,以幫助人們能夠很塊的找到這個城市中的各種資源。當(dāng)城市中的所有東西都認(rèn)同并服從這個標(biāo)準(zhǔn)后,大家才能很方便的共享這座城市的資源了。

比如你需要你的朋友A幫你獲取到位于xxx大道xxx街的xxx圖書館中二樓計(jì)算機(jī)室的xxx書架上的xxx書(標(biāo)準(zhǔn)化的名字)的時候。你的朋友A立即就知道你是什么意思了。

而URL就是因特網(wǎng)上的資源的標(biāo)準(zhǔn)化名稱。

URL是統(tǒng)一資源定位符的縮寫。它是一個具有特殊含義的字符串,其格式如下
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
可以看到整個URL分為以下七個部分

  • scheme 指定該請求使用協(xié)議
  • user:password 驗(yàn)證用戶名和密碼,由于安全原因,現(xiàn)在大多數(shù)系統(tǒng)已經(jīng)不再支持這個了。
  • host:需要請求的目標(biāo)主機(jī)
  • port:目標(biāo)主機(jī)的端口
  • path:目標(biāo)資源在目標(biāo)主機(jī)上的位置
  • ?query:查詢信息
  • #fragment:錨點(diǎn)定位
  • 3.1 協(xié)議(scheme)

    • 定義了URL余下部分的名稱空間、用途和語法
    • 不區(qū)分大小寫

    比如你在瀏覽器地址欄中鍵入http://example.org:80,瀏覽器就會通過80端口向主機(jī)example.org發(fā)送HTTP請求。

    如果你在瀏覽器地址欄中鍵入mailto:bob@example.com,那么瀏覽器就會向bob@example.com發(fā)送郵件來執(zhí)行你的指令

    再比如你在瀏覽器中鍵入ftp://IP/Download/,那么你的瀏覽器就可以通過ftp協(xié)議獲取到這個ip指向服務(wù)器的資源。

    3.2 主機(jī)(host)與端口(port)

    URL的目標(biāo)位置,相當(dāng)于前面的拿書的那個例子中圖書館的位置信息(位于xxx大道xxx街的xxx圖書館)。

    這一段字符串的作用是通過它能準(zhǔn)確定位到因特網(wǎng)中某臺主機(jī)。

    host字段有兩種:ip和域名
    域名是ip地址的替代,瀏覽器會通過使用DNS來獲取域名對應(yīng)的IP地址。
    IPV4: 32比特(4組,每組8比特)
    IPV6: 128 比特

    表示如果省略將接收請求的服務(wù)器應(yīng)用程序,則使用特定于方案的默認(rèn)值.
    3000: HTTP Nodejs server
    8080: HTTP Tomcat server
    22: Secure Shell (SSH)
    80: HTTP default
    443: HTTP Secure (HTTPS)

    3.3 路徑(path)、查詢字符串(?query)、錨點(diǎn)(#fragment)

    路徑:
    資源的位置。相當(dāng)于前面拿書的例子中圖書在圖書館中的位置信息(二樓計(jì)算機(jī)室的xxx書架上的xxx書)
    該字段區(qū)分大小寫(有些服務(wù)器不區(qū)分大小寫).

    查詢字符串:
    還是用拿書的例子來說,比如需要的書有很多種版本(第一版、第二版之類的)。所以在后面加上一些信息(版本為第五版,封面為白色的)。
    以?起頭,后面跟上鍵值對,多個鍵值對之間以&符號區(qū)別。
    舉個例子

    https://www.baidu.com/s?wd=htttp協(xié)議片段&rsv_spt=1&rsv_iqid=0xf5310479000d154e&issp=1&f=8&rsv_bp=1&rsv_idx=2

    后邊wd=htttp協(xié)議片段&rsv_spt=1&rsv_iqid=0xf5310479000d154e&issp=1&f=8&rsv_bp=1&rsv_idx=2就是查詢字段。

    錨點(diǎn)
    拿前面的拿書的例子來說,如果我需要的東西只是書中的某一段怎么辦,按道理是可以放在查詢字段中的,但是它與普通查詢字段有不一樣,因?yàn)檫@時候書(資源)已經(jīng)找到了。所以可以在后面在加上一個字段,專門用來定位的。

    例子:
    一個比較常見的例子就是百度百科最右邊的目錄

    4. Http請求頭

    由于不能將所有的信息放在請求行中,那樣會讓請求行顯得十分冗長。所以開辟一個空間用來攜帶額外的信息,那么這個空間就是http請求頭。就我目前對http協(xié)議的理解,http請求頭中的信息是用來描述本次請求以及期待響應(yīng)的信息,并不涉及業(yè)務(wù)功能。比如Accept就是向服務(wù)器表明瀏覽器可以接受的文本類型。

    由于是用來描述請求與期待響應(yīng)的,所以請求頭中信息的組織形式為鍵-值。

    請求頭中常用的鍵以及其意義

    鍵含義
    Accept瀏覽器可以接受的文本類型
    Accept-Charset瀏覽器需要的字符集(接觸比較少)
    Accept-Encoding瀏覽器接受的字符編碼
    Accept-Language瀏覽器接受的語言
    Content-Length請求正文的長度
    Content-Type請求正文的類型,文本、html等等

    總結(jié)

    以上是生活随笔為你收集整理的01_HTTP协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。