1. 程式人生 > >HTTP 協議詳解與HTTP 協議壓縮

HTTP 協議詳解與HTTP 協議壓縮

HTTP 協議詳解

 當今web程式的開發技術真是百家爭鳴,ASP.NET, PHP, JSP,Perl, AJAX 等等。 無論Web技術在未來如何發展,理解Web程式之間通訊的基本協議相當重要, 因為它讓我們理解了Web應用程式的內部工作. 本文將對HTTP協議進行詳細的例項講解,內容較多,希望大家耐心看。也希望對大家的開發工作或者測試工作有所幫助。使用Fiddler工具非常方便地捕獲HTTP Request和HTTP Response,  關於Fiddler工具的用法,請看我另一篇部落格[Fiddler 教程]

  閱讀目錄

  什麼是HTTP協議

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

  目前我們使用的是HTTP/1.1 版本

  Web伺服器,瀏覽器,代理伺服器

  當我們開啟瀏覽器,在位址列中輸入URL,然後我們就看到了網頁。 原理是怎樣的呢?

  實際上我們輸入URL後,我們的瀏覽器給Web伺服器傳送了一個Request, Web伺服器接到Request後進行處理,生成相應的Response,然後傳送給瀏覽器, 瀏覽器解析Response中的HTML,這樣我們就看到了網頁,過程如下圖所示

  我們的Request 有可能是經過了代理伺服器,最後才到達Web伺服器的。

  過程如下圖所示

  代理伺服器就是網路資訊的中轉站,有什麼功能呢?

  1. 提高訪問速度, 大多數的代理伺服器都有快取功能。

  2. 突破限制, 也就是翻牆了

  3. 隱藏身份。

  URL詳解

  URL(Uniform Resource Locator) 地址用於描述一個網路上的資源,  基本格式如下

schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]

  scheme               指定低層使用的協議(例如:http, https, ftp)

  host                   HTTP伺服器的IP地址或者域名

  port#                 HTTP伺服器的預設埠是80,這種情況下埠號可以省略。如果使用了別的埠,必須指明,例如 http://www.cnblogs.com:8080/

  path                   訪問資源的路徑

  url-params

  query-string       傳送給http伺服器的資料

  anchor-             錨

  URL 的一個例子

http://www.mywebsite.com/sj/test;id=8079?name=sviergn&x=true#stuff

Schema: http

host: www.mywebsite.com

path: /sj/test

URL params: id=8079

Query String: name=sviergn&x=true

Anchor: stuff

  HTTP協議是無狀態的

  http協議是無狀態的,同一個客戶端的這次請求和上次請求是沒有對應關係,對http伺服器來說,它並不知道這兩個請求來自同一個客戶端。 為了解決這個問題, Web程式引入了Cookie機制來維護狀態.

  HTTP訊息的結構

  先看Request 訊息的結構,   Request 訊息分為3部分,第一部分叫請求行, 第二部分叫http header, 第三部分是body. header和body之間有個空行, 結構如下圖

  第一行中的Method表示請求方法,比如"POST","GET",  Path-to-resoure表示請求的資源, Http/version-number 表示HTTP協議的版本號

  當使用的是"GET" 方法的時候, body是為空的

  比如我們開啟部落格園首頁的request 如下

GET http://www.cnblogs.com/ HTTP/1.1

Host: www.cnblogs.com

  我們用Fiddler 捕捉一個部落格園登入的Request 然後分析下它的結構, 在Inspectors tab下以Raw的方式可以看到完整的Request的訊息,   如下圖

  我們再看Response訊息的結構, 和Request訊息的結構基本一樣。 同樣也分為三部分,第一部分叫request line, 第二部分叫request header,第三部分是body. header和body之間也有個空行,  結構如下圖

  HTTP/version-number表示HTTP協議的版本號,  status-code 和message 請看下節[狀態程式碼]的詳細解釋.

  我們用Fiddler 捕捉一個部落格園首頁的Response然後分析下它的結構, 在Inspectors tab下以Raw的方式可以看到完整的Response的訊息,   如下圖

  Get和Post方法的區別

  Http協議定義了很多與伺服器互動的方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個URL地址用於描述一個網路上的資源,而HTTP中的GET, POST, PUT, DELETE就對應著對這個資源的查,改,增,刪4個操作。 我們最常見的就是GET和POST了。GET一般用於獲取/查詢資源資訊,而POST一般用於更新資源資訊.

  我們看看GET和POST的區別

  1. GET提交的資料會放在URL之後,以?分割URL和傳輸資料,引數之間以&相連,如EditPosts.aspx?name=test1&id=123456.  POST方法是把提交的資料放在HTTP包的Body中.

  2. GET提交的資料大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的資料沒有限制.

  3. GET方式需要使用Request.QueryString來取得變數的值,而POST方式通過Request.Form來獲取變數的值。

  4. GET方式提交資料,會帶來安全問題,比如一個登入頁面,通過GET方式提交資料時,使用者名稱和密碼將出現在URL上,如果頁面可以被快取或者其他人可以訪問這臺機器,就可以從歷史記錄獲得該使用者的賬號和密碼.

  狀態碼

  Response 訊息中的第一行叫做狀態行,由HTTP協議版本號, 狀態碼, 狀態訊息 三部分組成。

  狀態碼用來告訴HTTP客戶端,HTTP伺服器是否產生了預期的Response.

  HTTP/1.1中定義了5類狀態碼, 狀態碼由三位數字組成,第一個數字定義了響應的類別

  1XX  提示資訊 - 表示請求已被成功接收,繼續處理

  2XX  成功 - 表示請求已被成功接收,理解,接受

  3XX  重定向 - 要完成請求必須進行更進一步的處理

  4XX  客戶端錯誤 -  請求有語法錯誤或請求無法實現

  5XX  伺服器端錯誤 -   伺服器未能實現合法的請求

  看看一些常見的狀態碼

  200 OK

  最常見的就是成功響應狀態碼200了, 這表明該請求被成功地完成,所請求的資源傳送回客戶端

  如下圖, 開啟部落格園首頁

  302 Found

  重定向,新的URL會在response中的Location中返回,瀏覽器將會使用新的URL發出新的Request。

  例如在IE中輸入http://www.google.com. HTTP伺服器會返回304, IE取到Response中Location header的新URL, 又重新發送了一個Request.

  304 Not Modified

  代表上次的文件已經被快取了, 還可以繼續使用,

  例如開啟部落格園首頁, 發現很多 Response 的status code 都是304

  提示: 如果你不想使用本地快取可以用Ctrl+F5強制重新整理頁面

  400 Bad Request  客戶端請求與語法錯誤,不能被伺服器所理解

  403 Forbidden 伺服器收到請求,但是拒絕提供服務

  404 Not Found

  請求資源不存在(輸錯了URL)

  比如在IE中輸入一個錯誤的URL, http://www.cnblogs.com/tesdf.aspx

  500 Internal Server Error 伺服器發生了不可預期的錯誤

  503 Server Unavailable 伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常

  HTTP Request header

  使用Fiddler 能很方便的檢視Reques header, 點選Inspectors tab -> Request tab -> headers  如下圖所示.

  header 有很多,比較難以記憶,我們也按照Fiddler那樣把header 進行分類,這樣比較清晰也容易記憶。

  Cache 頭域

  If-Modified-Since

  作用: 把瀏覽器端快取頁面的最後修改時間傳送到伺服器去,伺服器會把這個時間與伺服器上實際檔案的最後修改時間進行對比。如果時間一致,那麼返回304,客戶端就直接使用本地快取檔案。如果時間不一致,就會返回200和新的檔案內容。客戶端接到之後,會丟棄舊檔案,把新檔案快取起來,並顯示在瀏覽器中。

  例如:If-Modified-Since: Thu, 09 Feb 2012 09:07:57 GMT

  例項如下圖

  If-None-Match

  作用: If-None-Match和ETag一起工作,工作原理是在HTTP Response中新增ETag資訊。 當用戶再次請求該資源時,將在HTTP Request 中加入If-None-Match資訊(ETag的值)。如果伺服器驗證資源的ETag沒有改變(該資源沒有更新),將返回一個304狀態告訴客戶端使用本地快取檔案。否則將返回200狀態和新的資源和Etag.  使用這樣的機制將提高網站的效能

  例如: If-None-Match: "03f2b33c0bfcc1:0"

  例項如下圖

  Pragma

  作用: 防止頁面被快取, 在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一樣

  Pargma只有一個用法, 例如: Pragma: no-cache

  注意: 在HTTP/1.0版本中,只實現了Pragema:no-cache, 沒有實現Cache-Control

  Cache-Control

  作用: 這個是非常重要的規則。 這個用來指定Response-Request遵循的快取機制。各個指令含義如下

  Cache-Control:Public   可以被任何快取所快取()

  Cache-Control:Private     內容只快取到私有快取中

  Cache-Control:no-cache  所有內容都不會被快取

  還有其他的一些用法, 我沒搞懂其中的意思, 請大家參考其他的資料

  Client 頭域

  Accept

  作用: 瀏覽器端可以接受的媒體型別,

  例如:  Accept: text/html  代表瀏覽器可以接受伺服器回發的型別為 text/html  也就是我們常說的html文件,

  如果伺服器無法返回text/html型別的資料,伺服器應該返回一個406錯誤(non acceptable)

  萬用字元 * 代表任意型別

  例如  Accept: */*  代表瀏覽器可以處理所有型別,(一般瀏覽器發給伺服器都是發這個)

  Accept-Encoding:

  作用: 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支援壓縮,支援什麼壓縮方法(gzip,deflate),(注意:這不是隻字元編碼);

  例如: Accept-Encoding: gzip, deflate

  Accept-Language

  作用: 瀏覽器申明自己接收的語言。 

  語言跟字符集的區別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等;

  例如: Accept-Language: en-us

  User-Agent

  作用:告訴HTTP伺服器, 客戶端使用的作業系統和瀏覽器的名稱和版本.

  我們上網登陸論壇的時候,往往會看到一些歡迎資訊,其中列出了你的作業系統的名稱和版本,你所使用的瀏覽器的名稱和版本,這往往讓很多人感到很神奇,實際上,伺服器應用程式就是從User-Agent這個請求報頭域中獲取到這些資訊User-Agent請求報頭域允許客戶端將它的作業系統、瀏覽器和其它屬性告訴伺服器。

  例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)

  Accept-Charset

  作用:瀏覽器申明自己接收的字符集,這就是本文前面介紹的各種字符集和字元編碼,如gb2312,utf-8(通常我們說Charset包括了相應的字元編碼方案);

  例如:

  Cookie/Login 頭域

  Cookie:

  作用: 最重要的header, 將cookie的值傳送給HTTP 伺服器

  Entity頭域

  Content-Length

  作用:傳送給HTTP伺服器資料的長度。

  例如: Content-Length: 38

  Content-Type

  作用:

  例如:Content-Type: application/x-www-form-urlencoded

  Miscellaneous 頭域

  Referer:

  作用: 提供了Request的上下文資訊的伺服器,告訴伺服器我是從哪個連結過來的,比如從我主頁上鍊接到一個朋友那裡,他的伺服器就能夠從HTTP Referer中統計出每天有多少使用者點選我主頁上的連結訪問他的網站。

  例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT

  Transport 頭域

  Connection

  例如: Connection: keep-alive   當一個網頁開啟完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線

  例如:  Connection: close  代表一個Request完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線會關閉, 當客戶端再次傳送Request,需要重新建立TCP連線。

  Host(傳送請求時,該報頭域是必需的)

  作用: 請求報頭域主要用於指定被請求資源的Internet主機和埠號,它通常從HTTP URL中提取出來的

  例如: 我們在瀏覽器中輸入:http://www.guet.edu.cn/index.html

  瀏覽器傳送的請求訊息中,就會包含Host請求報頭域,如下:

  Host:http://www.guet.edu.cn

  此處使用預設埠號80,若指定了埠號,則變成:Host:指定埠號

HTTP Response header

  同樣使用Fiddler 檢視Response header, 點選Inspectors tab ->Response tab-> headers  如下圖所示

  我們也按照Fiddler那樣把header 進行分類,這樣比較清晰也容易記憶。

  Cache頭域

  Date

  作用:  生成訊息的具體時間和日期

  例如: Date: Sat, 11 Feb 2012 11:35:14 GMT 

  Expires

  作用: 瀏覽器會在指定過期時間內使用本地快取

  例如: Expires: Tue, 08 Feb 2022 11:35:14 GMT

  Vary

  作用:

  例如: Vary: Accept-Encoding

  Cookie/Login 頭域

  P3P

  作用: 用於跨域設定Cookie, 這樣可以解決iframe跨域訪問cookie的問題

  例如: P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR

  Set-Cookie

  作用: 非常重要的header, 用於把cookie 傳送到客戶端瀏覽器, 每一個寫入cookie都會生成一個Set-Cookie.

  例如: Set-Cookie: sc=4c31523a; path=/; domain=.acookie.taobao.com

  Entity頭域

  ETag

  作用:  和If-None-Match 配合使用。 (例項請看上節中If-None-Match的例項)

  例如: ETag: "03f2b33c0bfcc1:0"

  Last-Modified:

  作用: 用於指示資源的最後修改日期和時間。(例項請看上節的If-Modified-Since的例項)

  例如: Last-Modified: Wed, 21 Dec 2011 09:09:10 GMT

  Content-Type

  作用:WEB伺服器告訴瀏覽器自己響應的物件的型別和字符集,

  例如:

  Content-Type: text/html; charset=utf-8

  Content-Type:text/html;charset=GB2312

  Content-Type: image/jpeg

  Content-Length

  指明實體正文的長度,以位元組方式儲存的十進位制數字來表示。在資料下行的過程中,Content-Length的方式要預先在伺服器中快取所有資料,然後所有資料再一股腦兒地發給客戶端。

  例如: Content-Length: 19847

  Content-Encoding

  WEB伺服器表明自己使用了什麼壓縮方法(gzip,deflate)壓縮響應中的物件。

  例如:Content-Encoding:gzip

  Content-Language

  作用: WEB伺服器告訴瀏覽器自己響應的物件的語言者

  例如: Content-Language:da

  Miscellaneous 頭域

  Server:

  作用:指明HTTP伺服器的軟體資訊

  例如:Server: Microsoft-IIS/7.5

  X-AspNet-Version:

  作用:如果網站是用ASP.NET開發的,這個header用來表示ASP.NET的版本

  例如: X-AspNet-Version: 4.0.30319

  X-Powered-By:

  作用:表示網站是用什麼技術開發的

  例如: X-Powered-By: ASP.NET

  Transport頭域

  Connection

  例如: Connection: keep-alive   當一個網頁開啟完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線

  例如:  Connection: close  代表一個Request完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線會關閉, 當客戶端再次傳送Request,需要重新建立TCP連線。

  Location頭域

  Location

  作用: 用於重定向一個新的位置, 包含新的URL地址

  例項請看304狀態例項

  HTTP協議是無狀態的和Connection: keep-alive的區別

  無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。從另一方面講,開啟一個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡。

  HTTP是一個無狀態的面向連線的協議,無狀態不代表HTTP不能保持TCP連線,更不能代表HTTP使用的是UDP協議(無連線)。

  從HTTP/1.1起,預設都開啟了Keep-Alive,保持連線特性,簡單地說,當一個網頁開啟完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線。

  Keep-Alive不會永久保持連線,它有一個保持時間,可以在不同的伺服器軟體(如Apache)中設定這個時間。


HTTP 協議壓縮

HTTP壓縮是指: Web伺服器和瀏覽器之間壓縮傳輸的”文字內容“的方法。 HTTP採用通用的壓縮演算法,比如gzip來壓縮HTML,Javascript, CSS檔案。 能大大減少網路傳輸的資料量,提高了使用者顯示網頁的速度。當然,同時會增加一點點伺服器的開銷。 本文從HTTP協議的角度,來理解HTTP壓縮這個概念。 
  閱讀目錄

  HTTP內容編碼和HTTP壓縮的區別

  HTTP壓縮,在HTTP協議中,其實是內容編碼的一種。

  在http協議中,可以對內容(也就是body部分)進行編碼, 可以採用gzip這樣的編碼。 從而達到壓縮的目的。 也可以使用其他的編碼把內容攪亂或加密,以此來防止未授權的第三方看到文件的內容。

  所以我們說HTTP壓縮,其實就是HTTP內容編碼的一種。 所以大家不要把HTTP壓縮和HTTP內容編碼兩個概念混淆了。

  HTTP壓縮的過程

  1. 瀏覽器傳送Http request 給Web伺服器,  request 中有Accept-Encoding: gzip, deflate。 (告訴伺服器, 瀏覽器支援gzip壓縮)

  2. Web伺服器接到request後, 生成原始的Response, 其中有原始的Content-Type和Content-Length。

  3. Web伺服器通過Gzip,來對Response進行編碼, 編碼後header中有Content-Type和Content-Length(壓縮後的大小), 並且增加了Content-Encoding:gzip.  然後把Response傳送給瀏覽器。

  4. 瀏覽器接到Response後,根據Content-Encoding:gzip來對Response 進行解碼。 獲取到原始response後, 然後顯示出網頁。


  如下圖:

  例項:Fiddler觀察HTTP壓縮

  眼見為實, 我們看一個實際的例子, 我發現部落格園就使用了gzip壓縮。

  使用Fiddler可以清楚地看到。  

  在Fiddler中,每次都要手動去decode. 太麻煩。  點選工具欄上的"Decode"按鈕,就可以自動decode了。

  內容編碼型別

  HTTP定義了一些標準的內容編碼型別,並允許用擴充套件的形式新增更多的編碼。

  Content-Encoding header 就用這些標準化的代號來說明編碼時使用的演算法

  Content-Encoding值

  gzip  表明實體採用GNU zip編碼

  compress 表明實體採用Unix的檔案壓縮程式

  deflate  表明實體是用zlib的格式壓縮的

  identity  表明沒有對實體進行編碼。當沒有Content-Encoding header時, 就預設為這種情況

  gzip, compress, 以及deflate編碼都是無失真壓縮演算法,用於減少傳輸報文的大小,不會導致資訊損失。 其中gzip通常效率最高, 使用最為廣泛。

  壓縮的好處

  http壓縮對純文字可以壓縮至原內容的40%, 從而節省了60%的資料傳輸。

  例項: 部落格園首頁壓縮前是:46124 bytes. 壓縮後是:16368bytes.     只有原先的35%。  節省了65%的資料傳輸,從而大大提高了效能,有圖為證。

  Gzip的缺點

  JPEG這類檔案用gzip壓縮的不夠好。

  Gzip是如何壓縮的

  簡單來說, Gzip壓縮是在一個文字檔案中找出類似的字串, 並臨時替換他們,使整個檔案變小。這種形式的壓縮對Web來說非常適合, 因為HTML和CSS檔案通常包含大量的重複的字串,例如空格,標籤。

相關推薦

HTTP 協議HTTP 協議壓縮

HTTP 協議詳解  當今web程式的開發技術真是百家爭鳴,ASP.NET, PHP, JSP,Perl, AJAX 等等。 無論Web技術在未來如何發展,理解Web程式之間通訊的基本協議相當重要, 因為它讓我們理解了Web應用程式的內部工作. 本文將對HTTP協議進行

SCTP協議例項

1.SCTP是什麼? 只要是接觸過程式設計的人,當你問他傳輸層都有哪些協議?我想幾乎很多人會說TCP,IP協議而很少有人知道SCTP(流控制傳輸協議)這個和上述倆個協議具有相同地位的協議。 SCTP提供的服務與TCP,UDP類似,或者甚至可以理解為其是TCP

PPI協議 ppi通訊協議 ppi通訊協議 vbppi協議通訊

我們提供 PPI協議的官方文件,協議更新時間為2005年,下面是我們根據文件解析的PPI讀取變數返回資料,網上的文獻大部分都是講解如何傳送的,對於接收提的很少,其中接收有很多控制位,下面的表格都一一列出,如果想做可靠的工控必須對這些位進行解析,對照官方文件才能做出可靠的工控產品 說明 PPI幀頭

應用層協議HTTPHTTPS協議、二者的區別

http協議詳解 1、HTTP協議:超文字傳輸協議 是一種分散式、合作式、多媒體資訊系統服務,面向應用層的協議。是一種通用的,不分狀態的協議。是一種請求/應答協議。 1.1、HTTP/1.0和HTTP/1.1的比較 RFC 1945定義了HTT

HTTP協議 (三) 壓縮 之前寫過一個篇 【HTTP協議】 ,這次繼續介紹HTTP協議中的壓縮。 本文會使用Fiddler來檢視HTTP request和Response, 如果不熟悉這個工

之前寫過一個篇 【HTTP協議詳解】 ,這次繼續介紹HTTP協議中的壓縮。 本文會使用Fiddler來檢視HTTP request和Response, 如果不熟悉這個工具,可以先參考[Fiddler教程] HTTP壓縮是指: Web伺服器和瀏覽器之間壓縮傳輸的”文字內容“的方法。 HTTP採用通用的壓縮演算

Java____HTTP協議(web client通過httpservice通訊)

    1、基礎:     高層協議有:檔案傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和HTTP協議等 中介由三種:代理(Proxy)、閘道器(Gateway)和通道(Tunnel),一個代理根據URI的絕對格式來接受請求,重寫全部或部分訊息,通過 URI的標識把已

HTTP協議(真的很經典)

cnp 運用 web應用 media 服務器端 所有 長度 request bad 轉載:http://e7kan.com/?p=264& 引言 HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它於1990年提出,經過幾

http協議

表單 pos 換行 none 必須掌握 通信 pow print expires HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1

HTTP 協議

範圍 文件傳輸 ext text 繼續 warn 分組 asi nsf 前言:   之前買過一本《圖解 HTTP》這本書,作者好像是個小日本,也繼承了小日本在動漫方面的天賦,30% 的內容都是 Q 版畫圖。   之後沒有引起我的重視,書一借出去,然後,之後 .. 之後,

Http 協議筆記

code sps 網頁 提示 agent tor 指定 6.0 lec HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六

HTTP協議狀態碼HTTP Status Code)

找不到 work for 條件 暫時 ocs 有效 網絡設備 不同 使用ASP.NET/PHP/JSP 或者javascript都會用到http的不同狀態,一些常見的狀態碼為: 200 – 服務器成功返回網頁 404 – 請求的網頁不存在 503 – 服務不可用 1x

HTTP協議以及URL具體訪問過程

標記語言 初始化 折疊 code 文件類型 scheme 缺少 gif 其他瀏覽器 1、簡介   1.1、HTTP協議是什麽?   即超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議,所有的WWW文件都必

HTTP協議??

www protocol tcp url web nsf ide 信息 http HTTP 協議是 Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web)服務器傳輸超文本到本地瀏覽器的傳送

python爬蟲學習筆記二:Requests庫HTTP協議

Requests庫的安裝:https://mp.csdn.net/postedit/83715574 r=requests.get(url,params=None,**kwargs) 這個r是Response物件 url :擬獲取頁面的url連結 params:url中的額外引數

HTTP傳輸協議(簡單易懂)

前言 HTTP: HyperText Transfer Protocol超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,所有的WWW檔案都必須遵守這個標準;屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不

Javaweb:http協議

HTTP是一個屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴充套件。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規範化工作正在進行之中,而且HTTP-NG(Next Generat

筆記轉載 HTTP [轉]HTTP協議,你所不知道的

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

HTTP協議(真的很經典)--轉載

連續 查找 初始 出現 門戶 全部 4.0 form ons 概要: HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統 | |目錄 1引言 2一

HTTP協議 轉自小坦克

當今web程式的開發技術真是百家爭鳴,ASP.NET, PHP, JSP,Perl, AJAX 等等。 無論Web技術在未來如何發展,理解Web程式之間通訊的基本協議相當重要, 因為它讓我們理解了Web應用程式的內部工作. 本文將對HTTP協議進行詳細的例項

HTTP協議-HTTP協議

HTTP協議是一個網際網路協議,不僅用來傳輸網頁。也被很多的軟體用來與伺服器通訊,在協議中包含了許多的通訊樣式的規定等,接下來就讓我們從頭開始瞭解它。 3.1. 在TCP/IP協議棧中的位置 HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端伺服器模