1. 程式人生 > >http協議概念及其工作流程

http協議概念及其工作流程

一、概念


協議是指計算機通訊網路中兩臺計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言(HTML)文件從Web伺服器傳送到客戶端的瀏覽器。


HTTP協議,即超文字傳輸協議(Hypertext transfer protocol)。是一種詳細規定了瀏覽器和全球資訊網(WWW = World Wide Web)伺服器之間互相通訊的規則,通過因特網傳送全球資訊網文件的資料傳送協議。


HTTP協議是用於從WWW伺服器傳輸超文字到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。


HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端伺服器模型。HTTP是一個無狀態的協議。


在Internet中所有的傳輸都是通過TCP/IP進行的。HTTP協議作為TCP/IP模型中應用層的協議也不例外。HTTP協議通常承載於TCP協議之上,有時也承載於TLS或SSL協議層之上,這個時候,就成了我們常說的HTTPS。如下圖所示:


 


HTTP預設的埠號為80,HTTPS的埠號為443。


瀏覽網頁是HTTP的主要應用,但是這並不代表HTTP就只能應用於網頁的瀏覽。HTTP是一種協議,只要通訊的雙方都遵守這個協議,HTTP就能有用武之地。比如咱們常用的QQ,迅雷這些軟體,都會使用HTTP協議(還包括其他的協議)。


二、簡史


它的發展是全球資訊網協會(World Wide Web Consortium)和Internet工作小組IETF(Internet Engineering Task Force)合作的結果,(他們)最終釋出了一系列的RFC,RFC 1945定義了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定義了今天普遍使用的一個版本——HTTP 1.1。


三、特點


HTTP協議永遠都是客戶端發起請求,伺服器回送響應。這樣就限制了使用HTTP協議,無法實現在客戶端沒有發起請求的時候,伺服器將訊息推送給客戶端。


HTTP協議的主要特點可概括如下:


1、支援客戶/伺服器模式。支援基本認證和安全認證。


2、簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯絡的型別不同。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。


3、靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type加以標記。


4、HTTP 0.9和1.0使用非持續連線:限制每次連線只處理一個請求,伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。HTTP 1.1使用持續連線:不必為每個web物件建立一個新的連線,一個連線可以傳送多個物件。


5、無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。


無狀態協議:


協議的狀態是指下一次傳輸可以“記住”這次傳輸資訊的能力。


http是不會為了下一次連線而維護這次連線所傳輸的資訊,為了保證伺服器記憶體。


比如客戶獲得一張網頁之後關閉瀏覽器,然後再一次啟動瀏覽器,再登陸該網站,但是伺服器並不知道客戶關閉了一次瀏覽器。


由於Web伺服器要面對很多瀏覽器的併發訪問,為了提高Web伺服器對併發訪問的處理能力,在設計HTTP協議時規定Web伺服器傳送HTTP應答報文和文件時,不儲存發出請求的Web瀏覽器程序的任何狀態資訊。這有可能出現一個瀏覽器在短短几秒之內兩次訪問同一物件時,伺服器程序不會因為已經給它發過應答報文而不接受第二期服務請求。由於Web伺服器不儲存傳送請求的Web瀏覽器程序的任何資訊,因此HTTP協議屬於無狀態協議(Stateless Protocol)。


HTTP協議是無狀態的和Connection: keep-alive的區別:無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。從另一方面講,開啟一個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡。HTTP是一個無狀態的面向連線的協議,無狀態不代表HTTP不能保持TCP連線,更不能代表HTTP使用的是UDP協議(無連線)。從HTTP/1.1起,預設都開啟了Keep-Alive,保持連線特性,簡單地說,當一個網頁開啟完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線。Keep-Alive不會永久保持連線,它有一個保持時間,可以在不同的伺服器軟體(如Apache)中設定這個時間。


四、工作流程


一次HTTP操作稱為一個事務,其工作過程可分為四步:


1)首先客戶機與伺服器需要建立連線。只要單擊某個超級連結,HTTP的工作開始。


2)建立連線後,客戶機發送一個請求給伺服器,請求方式的格式為:統一資源識別符號(URL)、協議版本號,後邊是MIME資訊包括請求修飾符、客戶機資訊和可能的內容。


3)伺服器接到請求後,給予相應的響應資訊,其格式為一個狀態行,包括資訊的協議版本號、一個成功或錯誤的程式碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的內容。


4)客戶端接收伺服器所返回的資訊通過瀏覽器顯示在使用者的顯示屏上,然後客戶機與伺服器斷開連線。


如果在以上過程中的某一步出現錯誤,那麼產生錯誤的資訊將返回到客戶端,有顯示屏輸出。對於使用者來說,這些過程是由HTTP自己完成的,使用者只要用滑鼠點選,等待資訊顯示就可以了。


 

相關推薦

http協議概念及其工作流程

一、概念 協議是指計算機通訊網路中兩臺計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言(HTML)文件從Web伺服器傳送到客戶端的瀏覽器。 HTTP協議,即超文字傳輸協議(Hypertext transfer p

HTTP協議報文、工作原理及Java中的HTTP通信技術詳解

tor 報文 buffered mod protoc 禁止 ans 請求報文 客戶端 博客園 首頁 新隨筆 聯系 管理 訂閱

MyBatis的幾個重要概念工作流程

.com 信息 獲得 sql 語句 進行 對象 結點 增刪改 build MyBatis 幾個重要的概念 Mapper 配置: Mapper 配置可以使用基於 XML 的 Mapper 配置文件來實現,也可以使用基於 Java 註解的 MyBatis 註解來實現,甚至可以

HTTP協議概念與特點,HTTP的狀態碼,HTTPS是什麽?

ans -type col 服務器 協議 限制 狀態 訪問 toc 很多人在打開網頁的時候,在瀏覽器地址欄裏都會看到http ,在Java WEB裏,HTTP也是個重點內容,今天我們就來詳細了解和學習HTTP .HTTP是Hyper Text Transfer Proto

HTTP協議報文、工作原理及Java中的HTTP通訊技術詳解

一、web及網路基礎       1、HTTP的歷史            1.1、HTTP的概念:         &nb

HTTP協議概念與特點,HTTP的狀態碼,HTTPS是什麼?

很多人在開啟網頁的時候,在瀏覽器位址列裡都會看到http  ,在Java WEB裡,HTTP也是個重點內容,今天我們就來詳細瞭解和學習HTTP . HTTP是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,HTTP協議是一個屬

Tomcat整體架構及其工作流程

這兩天看了一些關於tomcat的東西,在此做一個小的總計。 Tomcat架構 Tomcat中最頂層的容器是Server,代表著整個伺服器,從上圖中可以看出,一個Server可以包含至少一個Service,用於具體提供服務。一個Tomcat中只有一個Server,一個S

二十七、scrapy的概念工作流程

1. scrapy的概念 Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架,我們只需要實現少量的程式碼,就能夠快速的抓取。 Scrapy 使用了Twisted['twɪstɪd]非同步網路框架,可以加快我們的下載速度。 Scrapy文件地址:ht

HTTP協議概念

HTTP協議是(超文字傳輸協議)的縮寫,適用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。 特點: HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML檔案,圖片檔案,查詢結果等)。 HTTP預設埠號為80 知識拓展 TCP/IP是什麼? 答:TCP/IP是用於

MapReduce 原理及其工作流程

一   MapReduce優點 (1)為什麼用MapReduce(計算框架?)? 資料分片和移動計算 MapReduce採用計算移動到資料端方式, 此方式極大提高資料的運算效率(2)為什麼要用將計

DHCP協議原理及其實現流程

DHCP(Dynamic Host Configuration Protocol):動態主機配置協議 在常見的小型網路中(例如家庭網路和學生宿舍網),網路管理員都是採用手工分配IP地址的方法,而到了中、大型網路,這種方法就不太適用了。在中、大型網路,特別是大型網路中,往往有超過100臺的客戶機,手動分配IP

OSPF路由協議概念工作原理(一)

<script src="http://cpro.baidu.com/cpro/ui/cp.js" type="text/javascript" language="JavaScript"></script> baidu <iframe width="336" scrolli

從萌新的角度理解Http協議(一)之互動流程

HTTP協議,是構建Web世界的基石技術,HTTP協議應是軟體開發者必備的知識儲備。本文是介紹HTTP協議的入門級文章。 通過在瀏覽器輸入網址這個簡單的案例來介紹Http協議的互動流程。文字介紹互動流程包括兩個方面: 客戶端和服務端的互動 HTTP半雙工通

自定義View(一)---View的基礎概念工作流程以及生命週期的理解

不詩意的女程式猿不是好廚師~ 序:最近在工作中使用到了各種自定義控制元件,也更深刻的理解了自定義控制元件的重要性,所以就建了一個專欄來專門整理自定義控制元件的相關知識。我打算先從理論知識說起,然後再把專案中使用的自定義控制元件整理後寫為部落格發表,並

一篇文章帶你了解網絡爬蟲的概念及其工作原理

開發 才有 機器 graph jpg eight 效率 查找 規則 眾所周知,隨著計算機、互聯網、物聯網、雲計算等網絡技術的風起雲湧,網絡上的信息呈爆炸式增長。毋庸置疑,互聯網上的信息幾乎囊括了社會、文化、政治、經濟、娛樂等所有話題。使用傳統數據收集機制(如問卷調查法、訪談

bluetooth(藍芽) AVRCP協議概念及程式碼流程解析

一 概念   AVRCP全稱:The Audio/Video Remote Control Profile (AVRCP) 翻譯成中文就是:音視訊遠端控制協議。概念:AVRCP定義了藍芽裝置之間的音視訊傳輸的特點和流程,來確保不同藍芽裝置之間音視訊傳輸控制的相容。一般包括暫停,停止,播放,音量控制等遠端控制

HTTP協議概念作用及其特點

一:web互動流程                        

走進Struts2(一) — Struts2的執行流程及其工作原理

管理 npr clean 核心部分 由於 nco 方式 中間 con Struts2是一套很優秀的Web應用框架,實現優雅、功能強大、使用簡潔。能夠說是Struts2是一款很成熟的MVC架構。 在我們學習Struts2時,最好是先學習它的執行流程、核心概念。從中

HTTP協議中的通用頭及其功能

通用頭一、Connection指示客戶端與服務器在進行HTTP通信時如何處理TCP連接,如果Connection的值為close,則表示本次HTTP請求響應後結束TCP連接;如果Connection的值為Keep-Alive(HTTP1.1下為默認),則表示TCP連接一直有效二、DateDate通用頭域表明消

SSL協議握手工作流程詳解(雙向HTTPS流程)

包含 style strong 雙向認證 包括 返回 情況 身份認證 ssl 參考學習文檔:http://www.cnblogs.com/jifeng/archive/2010/11/30/1891779.html SSL協議的工作流程: 服務器認證階段: 1)客戶端向服務