0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HTTP協(xié)議的運(yùn)作方式及請(qǐng)求/響應(yīng)的步驟

要長(zhǎng)高 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2024-02-01 11:02 ? 次閱讀

什么是HTTP協(xié)議

超文本傳輸協(xié)議Hyper Text Transfer ProtocolHTTP是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議它通常運(yùn)行在TCP之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。請(qǐng)求和響應(yīng)消息的頭以ASCII形式給出而消息內(nèi)容則具有一個(gè)類似MIME的格式。

HTTP的工作原理

HTTP是基于客戶/服務(wù)器模式且面向連接的。典型的HTTP事務(wù)處理有如下的過程

1客戶與服務(wù)器建立連接

2客戶向服務(wù)器提出請(qǐng)求

3服務(wù)器接受請(qǐng)求并根據(jù)請(qǐng)求返回相應(yīng)的文件作為應(yīng)答

4客戶與服務(wù)器關(guān)閉連接。

HTTP協(xié)議的運(yùn)作方式

在WWW中“客戶”與“服務(wù)器”是一個(gè)相對(duì)的概念只存在于一個(gè)特定的連接期間即在某個(gè)連接中的客戶在另一個(gè)連接中可能作為服務(wù)器。基于HTTP的客戶/服務(wù)器模式的信息交換過程它分四個(gè)過程建立連接、發(fā)送請(qǐng)求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。

wKgaomW7CdiAJfRMAAG6viDsKCs136.png

HTTP協(xié)議的報(bào)文格式

HTTP報(bào)文由從客戶機(jī)到服務(wù)器的請(qǐng)求和從服務(wù)器到客戶機(jī)的響應(yīng)構(gòu)成。請(qǐng)求報(bào)文格式如下

請(qǐng)求行 - 通用信息頭 - 請(qǐng)求頭 - 實(shí)體頭 - 報(bào)文主體

請(qǐng)求行以方法字段開始后面分別是URL字段和HTTP協(xié)議版本字段并以CRLF結(jié)尾。SP是分隔符。除了在最后的CRLF序列中CF和LF是必需的之外其他都可以不要。有關(guān)通用信息頭請(qǐng)求頭和實(shí)體頭方面的具體內(nèi)容可以參照相關(guān)文件。

應(yīng)答報(bào)文格式如下

狀態(tài)行 - 通用信息頭 - 響應(yīng)頭 - 實(shí)體頭 - 報(bào)文主體

狀態(tài)碼元由3位數(shù)字組成表示請(qǐng)求是否被理解或被滿足。原因分析是對(duì)原文的狀態(tài)碼作簡(jiǎn)短的描述狀態(tài)碼用來支持自動(dòng)操作而原因分析用來供用戶使用??蛻魴C(jī)無(wú)需用來檢查或顯示語(yǔ)法。有關(guān)通用信息頭響應(yīng)頭和實(shí)體頭方面的具體內(nèi)容可以參照相關(guān)文件。

HTTP 請(qǐng)求/響應(yīng)的步驟

客戶端連接到 Web 服務(wù)器

一個(gè) HTTP 客戶端。通常是瀏覽器,與 Web 服務(wù)器的 HTTP 端(默認(rèn)為 80)建立一個(gè) TCP 套接字連接。如:http://www.baidu.com;

發(fā)送 HTTP 請(qǐng)求

通過 TCP 套接字,客戶端向 Web 服務(wù)器發(fā)送一個(gè)文本的請(qǐng)求報(bào)文,一個(gè)請(qǐng)求報(bào)文包括請(qǐng)求行、請(qǐng)求頭部、空行和請(qǐng)求數(shù)據(jù) 4 部分組成。

服務(wù)器接受請(qǐng)求并返回 HTTP 響應(yīng)

Web 服務(wù)器解析請(qǐng)求,定位請(qǐng)求資源。服務(wù)器將資源副本寫到 TCP 套接字,由客戶端讀取。一個(gè)響應(yīng)由狀態(tài)行、響應(yīng)頭部、空行和響應(yīng)數(shù)據(jù) 4 部分組成。

釋放 TCP 連接

如果 connect 模式為 close,則服務(wù)器阻斷關(guān)閉 TCP 連接,客戶端被動(dòng)關(guān)閉連接,釋放 TCP 連接;如果 connection 模式為 keepalive,則該連接會(huì)保持一段時(shí)間,在改時(shí)間內(nèi)可以繼續(xù)接收請(qǐng)求。

客戶端瀏覽器解析 HTML 內(nèi)容。

客戶端瀏覽器首先解析狀態(tài)行,查看表明請(qǐng)求是否成功的狀態(tài)代碼,然后解析每一個(gè)響應(yīng)頭,響應(yīng)頭告知以下為若干字節(jié)的 HTML 文檔和文檔的字符集。客戶端瀏覽器讀取響應(yīng)數(shù)據(jù) HTML,根據(jù) HTML 語(yǔ)法堆砌進(jìn)行格式化,并在瀏覽器窗口中顯示。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8866

    瀏覽量

    84959
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    496

    瀏覽量

    30897
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1337

    瀏覽量

    78865
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為什么有了HTTP,還需要RPC協(xié)議?

    為什么有了HTTP,還需要RPC協(xié)議呢?在進(jìn)行說明之前,首先我們需要了解什么是HTTP協(xié)議,什么是RPC協(xié)議。什么是
    的頭像 發(fā)表于 08-14 10:05 ?901次閱讀
    為什么有了<b class='flag-5'>HTTP</b>,還需要RPC<b class='flag-5'>協(xié)議</b>?

    一起學(xué)習(xí)HTTP協(xié)議

    的HTTPS。如下圖所示:HTTP請(qǐng)求響應(yīng)模型HTTP協(xié)議永遠(yuǎn)都是客戶端發(fā)起請(qǐng)求,服務(wù)器回送
    發(fā)表于 12-16 10:42

    HTTP協(xié)議如何請(qǐng)求信息Request?

    WebClient 軟件包功能特點(diǎn)HTTP協(xié)議介紹HTTP協(xié)議請(qǐng)求信息RequestHTTP協(xié)議響應(yīng)
    發(fā)表于 03-30 07:35

    什么是Http協(xié)議?

    Http協(xié)議中有哪些請(qǐng)求方式?****6、Http協(xié)議H
    發(fā)表于 12-22 06:27

    HTTP協(xié)議的相關(guān)資料分享

    前言HTTP協(xié)議是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上,傳輸端口一般為80。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什
    發(fā)表于 02-10 07:46

    簡(jiǎn)述基于HTTP協(xié)議實(shí)現(xiàn)WebClient軟件包的工作原理

    如何把數(shù)據(jù)傳送給客戶端的方式。HTTP 協(xié)議采用了請(qǐng)求/響應(yīng)模型。 客戶端向服務(wù)器發(fā)送一個(gè)請(qǐng)求報(bào)
    發(fā)表于 08-15 14:27

    http1.1協(xié)議中文版

    http1.1超文本傳輸協(xié)議標(biāo)準(zhǔn)的中文翻譯版,IOT的HTTP請(qǐng)求響應(yīng)模型
    發(fā)表于 10-29 11:10 ?0次下載

    iOS中HTTP傳輸協(xié)議

    局限于文本(其實(shí)可以傳輸任意類型的數(shù)據(jù))。 圖1.1傳輸示意圖.png 二、HTTP請(qǐng)求響應(yīng)的內(nèi)容 當(dāng)我們往服務(wù)端發(fā)送一條HTTP請(qǐng)求時(shí)都
    發(fā)表于 09-26 16:27 ?0次下載
    iOS中<b class='flag-5'>HTTP</b>傳輸<b class='flag-5'>協(xié)議</b>

    http請(qǐng)求 get post

    Http請(qǐng)求類 packagewzh.Http; importjava.io.BufferedReader; importjava.io.IOException
    發(fā)表于 09-27 10:36 ?16次下載

    HTTP協(xié)議的使用方式和設(shè)計(jì)原理講解

    HTTP 協(xié)議在網(wǎng)絡(luò)知識(shí)中占據(jù)了重要的地位,HTTP 協(xié)議最基礎(chǔ)的就是請(qǐng)求響應(yīng)的報(bào)文,而報(bào)文又
    發(fā)表于 06-28 09:08 ?4157次閱讀
    <b class='flag-5'>HTTP</b><b class='flag-5'>協(xié)議</b>的使用<b class='flag-5'>方式</b>和設(shè)計(jì)原理講解

    http協(xié)議請(qǐng)求方法及作用

    網(wǎng)絡(luò)安全是現(xiàn)下較為火熱的職業(yè)技術(shù)之一,學(xué)習(xí)網(wǎng)絡(luò)安全技能的人們?cè)絹碓蕉?。那么?duì)于網(wǎng)絡(luò)協(xié)議這一項(xiàng)內(nèi)容,http協(xié)議請(qǐng)求方法都有哪些?是網(wǎng)絡(luò)安全人員必須要會(huì)的知識(shí)。
    發(fā)表于 01-28 10:24 ?2119次閱讀

    HTTP請(qǐng)求方式有哪些

    相信大家在不管是學(xué)習(xí)、工作或者面試中,肯定會(huì)碰到或被問到?HTTP??相關(guān)的知識(shí)。今天我們來聊聊有哪些?HTTP?請(qǐng)求方式,以及區(qū)別吧! 小伙伴們寫過接口或者使用過網(wǎng)頁(yè)開發(fā)者模式的,肯
    的頭像 發(fā)表于 09-02 09:21 ?4524次閱讀

    SQL注入中的HTTP請(qǐng)求頭介紹

    作者名: 今天給大家講解的是SQL注入中的http請(qǐng)求頭注入,這種注入方式平時(shí)用的非常多,上次看別人面試時(shí)遇到了,就再來深究一下,研究其中的原理,利用方式等等 一、
    的頭像 發(fā)表于 01-14 11:22 ?3145次閱讀

    什么是HTTP協(xié)議

    超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。它指
    發(fā)表于 05-06 15:43 ?1199次閱讀

    HTTP協(xié)議運(yùn)作方式

    客戶端發(fā)起請(qǐng)求:客戶端向服務(wù)端發(fā)送HTTP請(qǐng)求報(bào)文,報(bào)文包括請(qǐng)求行、請(qǐng)求頭、請(qǐng)求體等內(nèi)容,其中
    發(fā)表于 05-06 15:52 ?738次閱讀
    <b class='flag-5'>HTTP</b><b class='flag-5'>協(xié)議</b>的<b class='flag-5'>運(yùn)作</b><b class='flag-5'>方式</b>