1. 程式人生 > >http協議報文頭及常見的狀態碼

http協議報文頭及常見的狀態碼

http協議

簡介:

  • http協議(hyper text transfer protocol,超文字傳輸協議),是用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。
  • http基於TCP/IP通訊協議來傳遞資料,屬於應用層協議。
  • http基於客戶端/伺服器(c/s)架構模型,通過可靠的連結來交換資訊,是一個無狀態的請求/響應協議

特點:

  • HTTP是無連線:無連線的含義是限制每次連結只處理一個請求,伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。
  • HTTP是媒體獨立的:只要客戶端和伺服器知道如何處理的資料內容,任何型別的資料都可以通過HTTP傳送,客戶端以及伺服器指定使用適合的MIME-type內容型別。
  • HTTP是無狀態的:無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則他必須重傳,這樣可能導致每次連結傳送的資料量增大。另一方面,在伺服器不需要先前資訊時他的應答就比較快。

http請求報文分析

http請求報文由三部分組成(請求頭、請求行、請求體

請求行

  1. 請求方法 ,GET和POST是最常見的HTTP方法,除此之外還包括DELETE、HEAD、OPTIONS、TRACE
  2. 請求對應的URL地址,他和報文頭的host屬性組成完整的請求URL
  3. 協議名稱及版本號

請求頭

     是HTTP的報文頭,報文頭包含若干個屬性,格式為“屬性名:屬性值”,服務端依據此獲取客戶端的資訊。與快取相關的規則資訊,均包含在header中。

     報文頭的屬性有:

  • Accept
    • 請求報文可通過一個“accept”報文頭屬性告訴服務端 客戶端接收什麼型別的響應。
    • 如下報文頭相當於告訴服務端,它能接收的響應型別為純文字資料。
    • Accept屬性的值可以為一個或多個MIME型別的值(描述訊息內容型別的因特網標準,訊息能包含文字、影象、音訊視訊以及其他應用程式專用的資料)

      Accept:text/plain
  • cookie
    • 客戶端的cookie就是通過這個報文頭屬性傳給伺服器
Cookie: $Version=1; Skin=new;jsessionid=5F4771183629C9834F8382E23 

               服務端是怎麼知道客戶端的多個請求是隸屬於一個Session呢?注意到後臺的那個jsessionid =                      5F4771183629C9834F8382E23木有?原來就是通過HTTP請求報文頭的Cookie屬性的jsessionid的值關聯起來的!(當然也可以 通過重寫URL的方式將會話ID附帶在每個URL的後面哦)。     

  •  referer
    表示這個請求時從哪個URL過來的,假如你通過Google搜尋出一個商家的廣告頁面,你對這個頁面廣告感興趣,滑鼠一點發送這個請求報文到商家的網站,這個請求報文的referer報文頭屬性值就是http://www.google.com
  • cache-control
    對快取進行控制,如一個請求希望響應返回的內容在客戶端要被快取一年,或不希望被快取就可以通過這個報文頭達到目的  

請求體

是報文體,它將一個頁面表單中的元件值通過param1=value1&param2=value2的鍵值對形式編碼成一個格式化串,它承載多個請求引數的資料。不但報文體可以傳遞請求引數,請求URL也可以通過這個方式來傳遞請求引數

http響應報文

http的響應報文也由三部分組成(響應行+響應頭+響應體)

響應行:

  • 報文協議及版本 
  • 狀態碼及狀態描述

響應頭:

  • 響應報文頭,也是由多個屬性組成

響應體:

  • 響應報文頭,即我們真正要的“乾貨”

常見的響應狀態碼

和請求報文相比,響應報文多了一個“響應狀態碼”,它以“清晰明確”的語言告訴客戶端本次請求的處理結果。
http的響應狀態碼由5段組成:

  • 1xx訊息,一般是告訴客戶端,請求已經收到了,正在處理,別急......
  • 2xx處理成功,一般表示:請求收悉,我明白你要的,請求已受理,已經處理完成等資訊
  • 3xx重定向到其他地方,它讓客戶端再發起一個請求以完成整個處理
  • 4xx處理髮生錯誤,責任在客戶端,如客戶端的請求一個不存在的資源,客戶端未被授權,禁止當問等,
  • 5xx處理髮生錯誤,責任在服務端,如伺服器丟擲異常,路由出錯,HTTP版本不支援等。

常見的報文狀態碼如下:

  1. 200(OK):找到了資源,並且一切正常
  2. 302/307:臨時重定向,指出請求的文件已被臨時移動到別處,此文件的新URL在location響應頭中給出
  3. 304(not modified):該資源在上次請求之後沒有任何修改。這通常用於瀏覽器的快取機制
  4. 401(unauthorized):客戶端無權訪問該資源。這通常會使得瀏覽器要求用於輸入使用者名稱和密碼,以登入到伺服器
  5. 403(forbidden):客戶端未能獲得授權。這通常是在401之後輸入了不正確的使用者名稱和密碼。
  6. 404(not found):在指定的位置不存在所申請的資源。

相關推薦

http協議報文常見狀態

http協議 簡介: http協議(hyper text transfer protocol,超文字傳輸協議),是用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。 http基於TCP/IP通訊協議來傳遞資料,屬於應用層協議。 http基於客戶端/伺服器(c/s

HTTP協議的原理常見的網頁狀態

transfer oca 升級 baidu 需要 代理 是否 動畫 line 一:DNS DNS:域名解析 正向解析:將域名解析為IP 反響解析:將IP解析為域名 DNS的特點:分布式、層次性 域名空間結構:根域、頂級域(國家/地區域名)、二級域 完整域名格式:FQDN=主

http請求狀態全解常見狀態詳細說明

http請求狀態碼分類 分類 分類描述 1** 資訊,伺服器收到請求,需要請求者繼續執行操作 2** 成功,操作被成功接收並處理 3** 重定向,需要進一

12. HTTP協議二:HTTP請求與響應、常見狀態

pro per 多重 並發 not 條件 轉換 tip author HTTP請求與響應 HTTP請求 HTTP請求是指從客戶端到服務器端的請求消息。HTTP請求主要由三部分構成,請求行、請求頭(headers)、body(請求數據)。 上圖是筆者用Charles抓包工

關於HTTP協議的訊息結構和狀態

訊息結構 HTTP使用統一資源識別符號(Uniform Resource Identifiers, URI)來傳輸資料和建立連線。一旦建立連線後,資料訊息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴充套件(MIME

http協議詳解htt面試題目,常見http狀態

HTTP報文是面向文字的,報文中的每一個欄位都是一些ASCII碼串,各個欄位的長度是不確定的。HTTP有兩類報文:請求報文和響應報文。 HTTP請求報文 一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求資料4個部分組成,下

http協議常見狀態解讀

1xx(臨時響應) 表示臨時響應並需要請求者繼續執行操作的狀態碼。 100(繼續) 請求者應當繼續提出請求。伺服器返回此程式碼表示已收到請求的第一部分,正在等待其餘部分。 101(切換協議) 請求者已

HTTP常見狀態介紹

狀態碼 http本文僅介紹常見的code,更多狀態碼的詳細信息請查看以下鏈接 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status.status(狀態碼):.1xx:100-101信息提示.2xx:200-206成功.3xx:300-305重定向

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

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

HTTP常見狀態

修改 請求頭 permanent found 緩存 請求重定向 維護 數據 con 計算機之間的通信以協議為共同基礎,客戶端與服務端都按照協議的約定進行通信。HTTP的狀態碼在HTTP協議內規定了很多狀態。客戶端請求服務端後,服務端就返回結果,同時返回狀態碼。告訴客戶端,本

HTTP常見狀態和調錯方法

**200 Ok:**客戶端請求成功 **400 Bad Request:**引數型別不匹配; 解決步驟: 1)檢視前端傳送的資料型別、欄位名及請求方法 2)檢視後端接收資料的方式是否和前端匹配 3)檢視欄位名是否一致 4)檢視資料型別是否一致 **401 Unauthorized:**請求

HTTP工作場景常見狀態解釋(HTTP狀態

1xx(臨時響應)表示臨時響應並需要請求者繼續執行操作的狀態碼。 100(繼續) 請求者應當繼續提出請求。伺服器返回此程式碼表示已收到請求的第一部分,正在等待其餘部分。 101(切換協議) 請求者已要求伺服器

Http常見狀態說明

一些常見的狀態碼為: 200 - 伺服器成功返回網頁404 - 請求的網頁不存在503 - 服務不可用   詳細分解: 1xx(臨時響應) 表示臨時響應並需要請求者繼續執行操作的狀態程式碼。程式碼 說明100 (繼續) 請求者應當繼續提出請求。伺服器返回此程式碼表示已收到請求的第一部分,正

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

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

HTTP常見狀態詳細解析

https://www.tuicool.com/articles/UrUni2jHTTP狀態碼(英語:HTTP Status Code)是用以表示網頁伺服器 超文字傳輸協議響應狀態的3位數字程式碼。它由 RFC 2616 規範定義的,並得到 RFC 2518、RFC 2817

Http協議請求、響應、響應

必須 響應 coo tab ron 內部錯誤 serve 接口 body Http部分請求頭 Accept 客戶機通過這個頭,告訴服務器,它支持哪些數據類型 Accept-Charset 客戶機通過這個頭,告訴服務器,它支持的編碼 Accept-Encoding

伺服器返回常見狀態意義

狀態程式碼由三位數字組成,第一個數字定義了響應的類別,且有5種可能取值: 1XX:指示資訊--表示請求已接收,繼續處理 2XX:成功--表示請求已被成功接收、理解、接受 3XX:重定向--要完成請求必須進行更進一步的操作 4XX:客戶端錯誤--請求有語法錯誤或請求無法實現 5XX:伺服

HTTP介紹方法狀態

固定 客戶 tex trace 頁面 dex 建立 客戶端 沖突 import socket #創建一個socket對象 sk = socket.socket() #綁定ip和端口 sk.bind(("127.0.0.1", 8050)) #監聽 sk.listen()

HTTP常見狀態(404、400、500)等錯誤

一些常見的狀態碼為: 200 - 伺服器成功返回網頁  404 - 請求的網頁不存在  503 - 服務不可用  詳細分解: 1xx(臨時響應)  表示臨時響應並需要請求者繼續執行操作的狀態程式碼。 程式碼 說明  100 (繼續) 請求者應當繼續提出請求。伺服器返

http常見狀態(13種)

前提:      對於web開發而言,我們平時接觸比較多的協議有http協議。而http協議中比較常用的則為http的狀態碼。      接下來分享14種最為常見的http狀態碼.      (1)200  OK       這是最為常見的http狀態碼之一,代表了伺服器