HTTP 概況

Web的應用層協議是超文本傳輸協議(HyperTextTransferProtocol,HTTP),它是?Web的核心。HTTP由兩個程序實現:一個客戶程序和一個服務器程序。客戶程序和服務器程序運行在不同的端系統中,通過交換HTTP報文進行會話。HTTP定義了這些報文的結構以及客戶和服務器進行報文交換的方式。在詳細解釋HTTP之前,應當回顧某些Web術語。

Web頁面(Web page)(也叫文檔)是由對象組成的。一個對象(object)只是一個文件,諸如一個HTML文件、一個JPEG圖形,一個Java小程序或一個視頻片段這樣的文件,且它們可通過一個URL地址尋址。多數Web頁面含有一個HTML基本文件(base HTML file)以及幾個引用對象。例如,如果一個Web頁面包含HTML文本和5個JPEG圖形,那么這個Web頁面有6個對象 : 一個HTML基本文件加5個圖形。HTML基本文件通過對象的URL地址引用頁面中的其他對象。每個URL地址由兩部分組成 : 存放對象的服務器主機名和對象的路徑名。例如,URL地址htp:www.someSchool.ed/someDepart-men/picture.gif,其中的www.someSehool.edu就是主機名,/someDepartment/picture, gif 就是路徑名。因為Web瀏覽器(Web browser)(例如Google和Firefox)實現了HTTP的客戶端,所以在Web環境中我們經常交替使用“瀏覽器”和“客戶”這兩個術語。Web服務器(Webserver)實現了HTTP的服務器端,它用于存儲Web對象,每個對象由URL.尋址。流行的Web服務器有Apache和 Microsoft Internet Information Server(微軟互聯網信息服務器)

HTTP定義了Web客戶向Web服務器請求Web頁面的方式,以及服務器向客戶傳送Web頁面的方式。我們稍后詳細討論客戶和服務器的交互過程,而其基本思想在下圖中進行了圖示。當用戶請求一個Web頁面(如點擊一個超鏈接)時,瀏覽器向服務器發出對該頁面中所包含對象的HTTP請求報文,服務器接收到請求并用包含這些對象的HTTP響應報文進行響應。

HTTP使用TCP作為它的支撐運輸協議(而不是在UDP上運行)。HTTP客戶首先發起一個與服務器的TCP連接。一旦連接建立,該瀏覽器和服務器進程就可以通過套接字接口訪問TCP。客戶端的套接字接口是客戶進程與TCP連接之間的門,在服務器端的套接字接口則是服務器進程與TCP連接之間的門。客戶向它的套接字接口發送HTTP請求報文并從它的套接字接口接收HTTP響應報文。類似地,服務器從它的套接字接口接收HTTP請求報文和向它的套接字接口發送HTTP響應報文。一旦客戶向它的套接字接口發送了一個請求報文,該報文就脫離了客戶控制并進入TCP的控制。TCP為HTTP提供可靠數據傳輸服務這意味著,一個客戶進程發出的每個HTTP請求報文最終能完整地到達服務器;類似地服務器進程發出的每個HTTP響應報文最終能完整地到達客戶。這里我們看到了分層體系結構最大的優點,即HTTP協議不用擔心數據丟失,也不關注TCP從網絡的數據丟失和亂序故障中恢復的細節。那是TCP以及協議棧較低層協議的工作。

注意到下列現象很重要:服務器向客戶發送被請求的文件,而不存儲任何關于該客戶的狀態信息。假如某個特定的客戶在短短的幾秒鐘內兩次請求同一個對象,服務器并不會因為剛剛為該客戶提供了該對象就不再做出反應,而是重新發送該對象,就像服務器已經完全忘記不久之前所做過的事一樣。因為HTTP服務器并不保存關于客戶的任何信息,所以我們說 HTTP是一個無狀態協議(stateless protocal)。我們同時也注意到 Web使用了客戶-服務器應用程序體系結構(如2.1節所述)。Web服務器總是打開的,具有一個固定的IP地址,且它服務于可能來自數以百萬計的不同瀏覽器的請求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44252.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44252.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44252.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

彩虹小插畫:成都亞恒豐創教育科技有限公司

彩虹小插畫:色彩斑斕的夢幻世界 在繁忙的生活節奏中,總有一抹溫柔的色彩能悄然觸動心弦,那就是彩虹小插畫帶來的夢幻與寧靜。彩虹,這一自然界的奇跡,被藝術家們巧妙地融入小巧精致的插畫之中,不僅捕捉了瞬…

事務未釋放問題排查

事務未釋放問題現象:一般會導致大量鎖表現象。 排查:查看所有鎖表報錯的日志是否都是同一個線程號上的,找到最開始的報錯并進行分析。

Oracle基礎以及一些‘方言’(一)

1、什么是Oracle ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。 ORACLE 通常應用于大型系統的數據庫產品。 ORACLE 數據庫是目前世界…

vue使用 “xlsx-style“: “^0.8.13“ 報錯

關于jszip not a constructor報錯配置config.js文件后可能還報錯的問題: 在node_modules處找到node_modules\xlsx-style\xlsx.js 文件。 將 if(typeof jszip undefined) jszip require(./jszip).JSZip;(應該在xlsx.js文件1339行左右) 替換成 if(typeof jszip und…

高壓線束屏蔽效能測試之管中管法、線注入法

一、引言 上期推文介紹了高壓線束屏蔽效能測試方法三同軸法,本篇文章將繼續介紹高壓線束相關測試方法——管中管法和線注入法。 二、管中管法 1、一般要求 管中管法參照IEC62153-4-7標準對高低壓連接器進行零部件級屏蔽效能測試。在測試時,通過金屬延長管…

3、視圖和模板

續上一篇,這一篇 著重于創建公共接口——“視圖” 第三部分——3、視圖和模板 1、概述2、編寫更多視圖原理——django依次訪問了什么文件 3、寫一個真正有用的視圖一個快捷函數 render() render——渲染 4、拋出404錯誤一個快捷函數 get_object_or_404() 5、使用模…

實時數倉和離線數倉的區別是什么,企業該如何選擇合適的數倉架構?

目錄 一、離線數倉 1. 離線數倉是什么? 2. 離線數倉的特點 3. 離線數倉的適用場景 二、實時數倉 1. 實時數倉是什么? 2. 實時數倉的特點 3. 實時數倉的適用場景 三、由數倉需求變化帶來的數據倉庫架構的演變 1. 傳統數倉架構 2. 離線大數據架構 3. Lambd…

高級IO_多路轉接之ET模式Reactor

文章目錄 Reactor是什么?LT模式 VS ET模式 示例代碼 提示:以下是本篇文章正文內容,下面案例可供參考 Reactor是什么? Reactor模式是一種事件驅動的并發模型,它通過將事件處理邏輯與事件分發機制解耦,實現…

maven如何處理依賴沖突的問題?

Maven是一個強大的Java項目管理工具,它使用一個名為pom.xml的文件來管理項目的構建過程和依賴關系。當項目中出現依賴沖突時,Maven使用一系列策略來解決這些問題。以下是Maven處理依賴沖突的一些常見方法: 1. 最近優先策略: -…

tensorflow之欠擬合與過擬合,正則化緩解

過擬合泛化性弱 欠擬合解決方法: 增加輸入特征項 增加網絡參數 減少正則化參數 過擬合的解決方法: 數據清洗 增大訓練集 采用正則化 增大正則化參數 正則化緩解過擬合 正則化在損失函數中引入模型復雜度指標,利用給w增加權重,…

點線面推進未來智造

如今,寧波擁有門類齊全的制造業體系,形成了以石油化工、汽車及零部件、電工電器、紡織服裝等為支柱的產業集群。 寧波工業的發展并非一蹴而就,藍卓總經理譚彰詳細解讀了寧波制造業的發展歷程與當下目標,從工業小市到工業大市、工業…

基于Matlab和Python泰勒圖的繪制

一、泰勒圖介紹 泰勒圖:泰勒圖1常用于評價模型的精度,常用的精度指標有相關系數,標準差以及均方根誤差(RMSE)。一般而言,泰勒圖中的散點代表模型,輻射線代表相關系數,橫縱軸代表標準差,而虛線代表均方根誤差。泰勒圖一改以往用散點圖這種只能呈現兩個指標來表示模型精度…

Qt使用筆記1(智能指針,deleteLater,多屏)

1、Qt智能指針 1.1、QPointer :解決野指針問題,必須是QObject對象。 1.2、QScopedPoint:作用域指針,出作用域自動釋放。 1.3、QScopedArrayPoint:作用域數組指針,出作用域自動釋放數組。 1.4、QSharedP…

RedHat運維-Ansible自動化運維基礎20-從ansible-galaxy下載role

1. 社區管理的role倉庫:___________________________________; 2. 社區管理的role倉庫:___________________________________; 3. 社區管理的role倉庫:___________________________________; 4. 在ansible …

Python數據結構的庫之Fuk使用詳解

概要 fuk 是一個用于處理 Python 數據結構的庫,全稱為 "Fast and Uncomplicated Kit"。它提供了一系列高效、簡潔的數據結構實現,以及對 Python 內置數據結構的擴展。通過使用 fuk,開發者可以更加方便地處理列表、集合、字典等數據類型,提高代碼的執行效率和可讀…

vite+vue3拍照上傳到nodejs服務器

一:效果展示: 拍照效果 二:Nodejs后端接口代碼: 三:前端完整代碼:

Vue基礎--v-model/v-for/事件屬性/偵聽器

目錄 一 v-model表單元素 1.1 v-model綁定文本域的value 1.1.1 lazy屬性:光標離開再發請求 1.1.2 number屬性:如果能轉成number就會轉成numer類型 1.1.3 trim屬性:去文本域輸入的前后空格 1.2v-model綁定單選checkbox 1.3代碼展示 二 …

esp8266+micropython+irsend紅外發射調試記錄

在網上搜索esp8266micropython的紅外發射庫,沒找到,發現 接收庫是有的,可以參考:基于MicroPython的ESP8266連接外設IO(二)_micropython 紅外接收-CSDN博客 可惜沒有發射,很不方便。 這里都有介…

PHP財務記賬管理系統小程序源碼

理財小能手必備!揭秘財務記賬管理系統的魔力? 🌟 引入篇:告別糊涂賬,擁抱財務自由 你是否曾為月底的賬單頭疼不已?是否覺得自己的錢總是莫名其妙地消失?別擔心,財務記賬管理系統來拯救你的錢…

【機器學習】必會數學知識:一文掌握數據科學核心數學知識點(下),收藏~

核心數學知識點 1、引言2、數據科學必會數學知識2.13 K均值聚類2.14 決策樹2.15 隨機森林2.16 梯度下降2.17 隨機梯度下降(SGD)2.18 卷積2.19 拉普拉斯變換2.20 傅里葉變換2.21 信息論2.22 時間序列分析2.23 生成模型與判別模型2.24 支持向量機&#xff…