摘要:的第一部分被稱為方案,說明了訪問資源所使用的協議類型。狀態碼位于響應的起始行中。是超文本傳輸協議,信息是明文傳輸,則是具有安全性的加密傳輸協議。協議是由協議構建的可進行加密傳輸身份認證的網絡協議,要比協議安全。
HTTP概述
HTTP (HyperText Transfer Protocol,超文本傳輸協議)。 Web是建立在HTTP協議通信的。
HTTP 是個應用層協議。HTTP 無需操心網絡通信的具體細節;它把聯網的細節都
交給了通用、可靠的因特網傳輸協議 TCP/IP。
TCP 提供了:
? 無差錯的數據傳輸;
? 按序傳輸(數據總是會按照發送的順序到達);
? 未分段的數據流(可以在任意時刻以任意尺寸將數據發送出去)。
Web 服務器是 Web 資源(Web resource)的宿主。Web 資源是 Web 內容的源頭。
最簡單的 Web 資源就是 Web 服務器文件系統中的靜態文件。這些文件可以包含
任意內容:文本文件、HTML 文件、微軟的 Word 文件、Adobe 的 Acrobat 文件、
JPEG 圖片文件、AVI 電影文件,或所有其他你能夠想到的格式。
(Multipurpose Internet Mail Extension,多用途因特網郵件擴展)是為了解決在不同
的電子郵件系統之間搬移報文時存在的問題。MIME 在電子郵件系統中工作得非常
好,因此 HTTP 也采納了它,用它來描述并標記多媒體內容
? HTML 格式的文本文檔由 text/html 類型來標記。
? 普通的 ASCII 文本文檔由 text/plain 類型來標記。
? JPEG 格式的圖片為 image/jpeg 類型。
? GIF 格式的圖片為 image/gif 類型。
? Apple 的 QuickTime 電影為 video/quicktime 類型。
? 微軟的 PowerPoint 演示文件為 application/vnd.ms-powerpoint 類型
服務器資源名被稱為統一資源標識符(Uniform Resource Identifier,URI)。
URI 就像因特網上的郵政地址一樣,在世界范圍內唯一標識并定位信息資源。
大部分 URL 都遵循一種標準格式,這種格式包含三個部分。
? URL 的第一部分被稱為方案(scheme),說明了訪問資源所使用的協議類型。這
部分通常就是 HTTP 協議(http://)。
? 第二部分給出了服務器的因特網地址(比如,www.joes-hardware.com)。
? 其余部分指定了 Web 服務器上的某個資源(比如,/specials/saw-blade.gif)
所有的 HTTP 報文都可以分為兩類: 請求報文(request message)和響應報文
(response message)。
請求報文的格式
GET /test/hi-there.txt HTTP/1.1
Accept: text/*
Host: www.joes-hardware.com
響應報文的格式
HTTP/1.0 200 OK
Content-type: text/plain
Content-length: 19
Hi! I’m a message!
包括以下三個部分。
? 起始行
報文的第一行就是起始行,在請求報文中用來說明要做些什么,在響應報文中說
明出現了什么情況。
? 首部字段
起始行后面有零個或多個首部字段。每個首部字段都包含一個名字和一個值,為
了便于解析,兩者之間用冒號(:)來分隔。首部以一個空行結束。添加一個首
部字段和添加新行一樣簡單。
? 主體
空行之后就是可選的報文主體了,其中包含了所有類型的數據。請求主體中包括
了要發送給 Web 服務器的數據;響應主體中裝載了要返回給客戶端的數據。起
始行和首部都是文本形式且都是結構化的,而主體則不同,主體中可以包含任意
的二進制數據(比如圖片、視頻、音軌、軟件程序)。當然,主體中也可以包含
文本
一些常見的HTTP方法
HTTP方法 描 述
GET 從服務器向客戶端發送命名資源
PUT 將來自客戶端的數據存儲到一個命名的服務器資源中去
DELETE 從服務器中刪除命名資源
POST 將客戶端數據發送到一個服務器網關應用程序
HEAD 僅發送命名資源響應中的 HTTP 首部
狀態碼則用來告訴客戶端,發生了什么事情。狀態碼位于響應的起始行中。比如,在行 HTTP/1.0 200 OK 中,狀態碼就是 200。
狀態碼分類:
常見狀態碼:
100——客戶必須繼續發出請求
101——客戶要求服務器根據請求轉換HTTP協議版本
200——交易成功
201——提示知道新文件的URL
202——接受和處理、但處理未完成
203——返回信息不確定或不完整
204——請求收到,但返回信息為空
205——服務器完成了請求,用戶代理必須復位當前已經瀏覽過的文件
206——服務器已經完成了部分用戶的GET請求
300——請求的資源可在多處得到
301——刪除請求數據
302——在其他地址發現了請求數據
303——建議客戶訪問其他URL或訪問方式
304——客戶端已經執行了GET,但文件未變化
305——請求的資源必須從服務器指定的地址得到
306——前一版本HTTP中使用的代碼,現行版本中不再使用
307——申明請求的資源臨時性刪除
400——錯誤請求,如語法錯誤
401——請求授權失敗
402——保留有效ChargeTo頭響應
403——請求不允許
404——沒有發現文件、查詢或URl
405——用戶在Request-Line字段定義的方法不允許
406——根據用戶發送的Accept拖,請求資源不可訪問
407——類似401,用戶必須首先在代理服務器上得到授權
408——客戶端沒有在用戶指定的時間內完成請求
409——對當前資源狀態,請求不能完成
410——服務器上不再有此資源且無進一步的參考地址
411——服務器拒絕用戶定義的Content-Length屬性請求
412——一個或多個請求頭字段在當前請求中錯誤
413——請求的資源大于服務器允許的大小
414——請求的資源URL長于服務器允許的長度
415——請求資源不支持請求項目格式
416——請求中包含Range請求頭字段,在當前請求資源范圍內沒有range指示值,請求也不包含If-Range請求頭字段
417——服務器不滿足請求Expect頭字段指定的期望值,如果是代理服務器,可能是下一級服務器不能滿足請求
500——服務器產生內部錯誤
501——服務器不支持請求的函數
502——服務器暫時不可用,有時是為了防止發生系統過載
503——服務器過載或暫停維修
504——關口過載,服務器使用另一個關口或服務來響應用戶,等待時間設定值較長
505——服務器不支持或拒絕支請求頭中指定的HTTP版本
HTTP的結構組件在本章的概述中,我們重點介紹了兩個 Web 應用程序(Web 瀏覽器和 Web 服務器)
是如何相互發送報文來實現基本事務處理的。在因特網上,要與很多 Web 應用程序
進行交互。在本節中,我們將列出其他一些比較重要的應用程序,如下所示。
? 代理
位于客戶端和服務器之間的 HTTP 中間實體。
? 緩存
HTTP 的倉庫,使常用頁面的副本可以保存在離客戶端更近的地方。
? 網關
連接其他應用程序的特殊 Web 服務器。
? 隧道
對 HTTP 通信報文進行盲轉發的特殊代理。
? Agent 代理
發起自動 HTTP 請求的半智能 Web 客戶端。
代理位于客戶端和服務器之間,接收所有客戶端的 HTTP 請求,并
將這些請求轉發給服務器(可能會對請求進行修改之后轉發)。對用戶來說,這些應
用程序就是一個代理,代表用戶訪問服務器。
Web 緩存(Web cache)或代理緩存(proxy cache)是一種特殊的 HTTP 代理服務
器,可以將經過代理傳送的常用文檔復制保存起來。下一個請求同一文檔的客戶端
就可以享受緩存的私有副本所提供的服務了。 客戶端從附近的緩存下載文檔會比從遠程 Web 服務器下載快得多。
網關(gateway)是一種特殊的服務器,作為其他服務器的中間實體使用。通常用于
將 HTTP 流量轉換成其他的協議。網關接受請求時就好像自己是資源的源端服務器
一樣。客戶端可能并不知道自己正在與一個網關進行通信。
隧道(tunnel)是建立起來之后,就會在兩條連接之間對原始數據進行盲轉發的
HTTP 應用程序。HTTP 隧道通常用來在一條或多條 HTTP 連接上轉發非 HTTP 數
據,轉發時不會窺探數據。
HTTP 隧道的一種常見用途是通過 HTTP 連接承載加密的安全套接字層(SSL,
Secure Sockets Layer)流量,這樣 SSL 流量就可以穿過只允許 Web 流量通過的防
火墻了。如圖 所示,HTTP/SSL 隧道收到一條 HTTP 請求,要求建立一條到目
的地址和端口的輸出連接,然后在 HTTP 信道上通過隧道傳輸加密的 SSL 流量,這
樣就可以將其盲轉發到目的服務器上去了
用戶 Agent 代理(或者簡稱為 Agent 代理)是代表用戶發起 HTTP 請求的客戶端程
序。(也被叫做爬蟲、網絡蜘蛛、web機器人),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
HTTPS 是最常見的 HTTP 安全版本。它得到了很廣泛的應用,所有主要的商業瀏覽
器和服務器上都提供 HTTPS。HTTPS 將 HTTP 協議與一組強大的對稱、非對稱和
基于證書的加密技術結合在一起,使得 HTTPS 不僅很安全,而且很靈活,很容易
在處于無序狀態的、分散的全球互聯網上進行管理。
HTTPS = HTTP + SSL(或TLS) + 認證(證書) + 加密(加密算法)
HTTP和HTTPS協議的區別1、HTTPS協議需要到證書頒發機構(Certificate Authority,簡稱CA)申請證書,一般免費證書很少,需要交費。
2、HTTP是超文本傳輸協議,信息是明文傳輸,HTTPS則是具有安全性的SSL加密傳輸協議。
3、HTTP和HTTPS使用的是完全不同的連接方式,使用的端口也不一樣,前者是80,后者是443。
4、HTTP的連接很簡單,是無狀態的。
5、HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比HTTP協議安全。
從上面可看出,HTTPS和HTTP協議相比提供了
· 數據完整性:內容傳輸經過完整性校驗
· 數據隱私性:內容經過對稱加密,每個連接生成一個唯一的加密密鑰
· 身份認證:第三方無法偽造服務端(客戶端)身份
其中,數據完整性和隱私性由TLS Record Protocol保證,身份認證由TLS Handshaking Protocols實現。
參考博客
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/62128.html
摘要:淺談網站性能之前端性能優化性能優化的目的無非是減少用戶流量消耗,提升用戶首屏體驗,提升用戶訪問速度,讓用戶專注內容本身。前端性能優化減少請求數量基本原理在瀏覽器與服務器進行通信時,主要是通過進行通信。 最近項目慢慢走上正軌,需求趨于平穩,這才想起需要對整站進行性能優化。經過一段時間的學習,結合現在項目的實際性能情況,發現確實有許多地方可以進行優化。于是就開始了我的前端性能優化之旅。以下...
摘要:淺談網站性能之前端性能優化性能優化的目的無非是減少用戶流量消耗,提升用戶首屏體驗,提升用戶訪問速度,讓用戶專注內容本身。前端性能優化減少請求數量基本原理在瀏覽器與服務器進行通信時,主要是通過進行通信。 最近項目慢慢走上正軌,需求趨于平穩,這才想起需要對整站進行性能優化。經過一段時間的學習,結合現在項目的實際性能情況,發現確實有許多地方可以進行優化。于是就開始了我的前端性能優化之旅。以下...
摘要:請求行請求方法空格統一資源標識符空格版本請求頭字段名冒號值空行回車符換行符請求體由用戶自定義添加,如的等請求首部實例谷歌瀏覽器面板響應報文結構響應報文結構與請求報文結構唯一的區別在于第一行中用狀態信息代替了請求信息。 很多開發者天天跟http打交道,卻不知道http報文長什么樣子,結構是怎么樣的,是時候普及一下了。用于 HTTP 協議交互的信息被稱為 HTTP 報文,請求端(客戶端)的...
摘要:請求行請求方法空格統一資源標識符空格版本請求頭字段名冒號值空行回車符換行符請求體由用戶自定義添加,如的等請求首部實例谷歌瀏覽器面板響應報文結構響應報文結構與請求報文結構唯一的區別在于第一行中用狀態信息代替了請求信息。 很多開發者天天跟http打交道,卻不知道http報文長什么樣子,結構是怎么樣的,是時候普及一下了。用于 HTTP 協議交互的信息被稱為 HTTP 報文,請求端(客戶端)的...
摘要:小白如何輕松寫出高性能前端頁面一從減少請求開始下面分別從以下幾點開篇圖片地圖,,內聯圖片,樣式表合并,腳本文件合并。操作原理通過合并圖片減少請求,并且比圖片地圖更靈活,降低下載量,合并后圖片比分離的圖片總和要小。 小白如何輕松寫出高性能web前端頁面 一.從減少HTTP請求開始 下面分別從以下幾點開篇:圖片地圖,CSS Sprites,內聯圖片,樣式表合并,腳本文件合并。 1.圖片地圖...
閱讀 1516·2021-08-09 13:47
閱讀 2776·2019-08-30 15:55
閱讀 3500·2019-08-29 15:42
閱讀 1122·2019-08-29 13:45
閱讀 3015·2019-08-29 12:33
閱讀 1748·2019-08-26 11:58
閱讀 991·2019-08-26 10:19
閱讀 2416·2019-08-23 18:00