超文本傳輸協議

超文本傳輸協議


?超文本傳輸協議
超文本傳輸協議

超文件傳輸協定(HTTP,HyperTextTransfer Protocol)是因特網上應用最為廣泛的一種網絡傳輸協定。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。

目錄

介紹
請求信息
請求方法
安全方法
超文本
例子

介紹

  

HTTP的發展是萬維網協會和Internet工作小組合作的結果,在一系列的RFC發布了最終的版本,其中最著名的是RFC2616。在RFC 2616中定義了HTTP 1.1這個今天普遍使用的版本。   HTTP是一個用于在客戶端和服務器間請求和應答的協議。一個HTTP的客戶端,諸如一個web瀏覽器,通過建立一個到遠程主機特殊端口(默認端口為80)的連接,初始化一個請求。一個HTTP服務器通過監聽特殊端口等待客戶端發送一個請求序列,就像“GET /HTTP/1.1”(用來請求網頁服務器的默認頁面),有選擇的接收像email一樣的MIME消息,此消息中包含了大量用來描述請求各個方面的信息頭序列,響應一個選擇的保留數據主體。接收到一個請求序列后(如果要的話,還有消息),服務器會發回一個回復,如“200OK”,同時發回一個它本報的消息,此消息的主體可能是被請求的文件、錯誤消息或者其他的一些信息。   HTTP并不局限于使用網絡協議(TCP/IP)及其相關支持層,盡管這是它在互聯網上最為流行的應用程序。事實上,HTTP可以“在任何其他互聯網協議之上執行,或者在其他網絡上執行。HTTP只認可可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。   HTTP不同于其他基于TCP的協議,諸如FTP。在HTTP中,一旦一個特殊的請求(或者請求的相關序列)完成,連接通常被中斷。這個設計使得對于當前頁面有規則連接到另一臺服務器頁面的萬維網來說,HTTP是完美的。當持久連接的缺乏成為保持用戶狀態的必需選擇的方法時,對網頁設計者來說,會偶然產生一些問題。而大部分這些方法包括了對“cookies”的使用。  這里有一個HTTP的安全版本稱為HTTPS,HTTPS支持任何的加密算法,只要此加密算法能被頁面雙方所理解。  HTTP(和HTTPS)由統一資源定位器或者簡稱URLs定位。創造這種地址定位的語法為了HTML的鏈接。超文本傳輸協議

請求信息

發出的請求信息包括以下幾個  
 * 請求行,例如GET /images/logo.gif HTTP/1.1,表示從/images 目錄下請求logo.gif這個文件。
 * 標題,例如Accept-Language: en  
 * 空行
?* 可選信息
  請求行和標題必須以<CR><LF>作為結尾(也就是,回車然后換行)。空行內必須只有<CR><LF>而無其他空格。在HTTP/1.1協議中,所有的標題除主機外都是可選的。

請求方法

  HTTP 定義了八種方法來指示確認的資源執行所需的行為。
?HEAD   要求與GET請求相應的回復一樣的應答,但是沒有回應的內容。這對找回寫在回應標題中的meta-infomation有幫助,不需要傳輸整個內容。  
 GET  請求某個特殊的資源,是目前網上最通用的方法。不應該用于一些會造成副作用的操作中(在網絡軟件中使用是一個常見的錯誤用法)。參看下個目錄的安全方法。
?? POST
  向確定的資源提交需要處理的數據。這些數據包括在請求的內容里。這可以造成新資源的產生和更新已有資源。
?  PUT   上傳特定資源
  DELETE   刪除特定資源
 TRACE   返回接收的請求,客戶端可因此察看在請求過程中什么中間服務器被加進來或者有所改變。  OPTIONS   返回服務器支持的HTTP方法,這可以用來檢查網絡服務器的功能。  
 CONNECT  將請求連接轉換成透明的TCP/IP通道,通常通過非加密的HTTP代理利用SSL-加密通訊(HTTPS)。

編輯本段安全方法

  有些方法(比如HEAD, GET, OPTIONS, and TRACE) 被定義為安全方法,這些方法針對的只是信息的返回,并不會改變服務器的狀態(換句話說就是這些方法不會產生副作用)。不安全的方法(例如POST, PUTand DELETE)應該用特殊的方式向用戶展示,通常是按鈕而不是鏈接,這樣就可以使用戶意識到可能要負的責任(例如一個按鈕帶來的資金交易。)

超文本

   超文本(Hypertext)是用超鏈結的方法,將各種不同空間的文字信息組織在一起的網狀文本。超文本更是一種用戶介面范式,用以顯示文本及與文本之間相關的內容。現時超文本普遍以電子文檔方式存在,其中的文字包含有可以鏈結到其他位置或者文檔的連結,允許從當前閱讀位置直接切換到超文本連結所指向的位置。超文本的格式有很多,目前最常使用的是超文本標記語言(Hyper TextMarkup Language,HTML)及富文本格式 (Rich TextFormat,RTF)。我們日常瀏覽的網頁上的鏈結都屬于超文本。2、一種按信息之間關系非線性地存儲、組織、管理和瀏覽信息的計算機技術。超文本技術將自然語言文本和計算機交互式地轉移或動態顯示線性文本的能力結合在一起,它的本質和基本特征就是在文檔內部和文檔之間建立關系,正是這種關系給了文本以非線性的組織。

例子

  下面是一個HTTP客戶端與服務器之間會話的例子,運行于www.g o o g l e. c o m,端口80  
 客戶端請求:
?  GET / HTTP/1.1  
 Host:www.b a i d u.c o m   
(緊跟著一個換行,通過敲入回車實現)  
 服務器應答:
  HTTP/1.1 200 OK  
 Content-Length: 3059
  Server: GWS/2.0
  Date: Sat, 11 Jan 2003 02:44:04 GMT
  Content-Type: text/html
  Cache-control: private   
Set-Cookie:PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy  X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.g o og l e. c o m  
 Connection: keep-alive   
(緊跟著一個空行,并且由HTML格式的文本組成了Google的主頁)
  在HTTP1.0中,客戶端發送一個請求至服務器,服務器發送一個應答至客戶端。之后,連接將被釋放。另一方面,HTTP1.1支持持久連接。這使得客戶端可以發送請求并且接收應答,然后迅速的發送另一個請求和接收另一個應答。因為多個額外的請求,TCP連接并沒有被釋放,而每個請求中關于TCP的負載相對較少。同時,在得到上一個請求的應答之前發送多個請求(通常是兩個)也成為可能。這個技術被稱為“流水線”。

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

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

相關文章

以太坊區塊鏈 JSON-RPC

RPC定義 以太坊客戶端提供了API和一組遠程調用的&#xff08;RPC&#xff09;命令&#xff0c;這些命令被編碼成json的格式&#xff0c;被叫做JSON-RPC-API。本質上&#xff0c;JSON-RPC API就是一個接口&#xff0c;允許我們編寫的程序使用以太坊客戶端作為網關&#xff0c;訪…

利用MFC調用libvlc.dll作一個簡單的播放器

簡單介紹MFC調用libvlc.dll作一個簡單的播放器&#xff0c;拋磚引玉&#xff0c;各位VC達人繼續深入研究&#xff0c;Jeremiah對VC確實不太感興趣&#xff0c;所以就不做太深入的研究了。2009.10.29修改&#xff1a;加入clip_children屬性設置。參開第1步。環境&#xff1a; …

對于以太坊虛擬機 (EVM)及其相關知識的講解

以太坊虛擬機&#xff08;EVM&#xff09; EVM是智能合約的運行環境作為區塊驗證協議的一部分&#xff0c;參與網絡的每個節點都會運行EVM&#xff0c;審查節點會檢查驗證正在驗證的區塊中列出的交易&#xff0c;并運行EVM中交易觸發的代碼EVM是沙盒封裝的&#xff0c;并且是完…

對于以太坊的Solidity語言介紹

Solidity是什么 Solidity是一門面向合約的、為實現智能合約而創建的高級編程語言&#xff0c;主要目的是為了在以太坊虛擬機&#xff08;EVM&#xff09;上運行Solidity是靜態語言&#xff0c;支持繼承、庫和復雜的用戶定義等特性內含的類型除了常見的編程語言中的標準類型&am…

live555 接收rtsp視頻流流程分析

live555 接收rtsp視頻流流程分析 RTSP交互流程 C表示RTSP客戶端&#xff0c;S表示RTSP服務端 ① C->S: OPTIONrequest //詢問S有哪些方法可用 S->C: OPTION response //S回應信息中包括提供的所有可用方法 ② C->S: DESCRIBErequest //要求得到S…

使用Remix編寫Solidity語言的小例子

設置數值/取數值/加法運算 講解 uint默認使用256位數的整型view表示這個函數僅僅對于數據僅僅是讀取&#xff0c;沒有修改操作returns(uint )&#xff0c;如果單純指定uint&#xff0c;返回的是函數體內的return值&#xff0c;如果包含uint sum,uint SAD_a&#xff0c;那么返…

RTP協議棧簡介

流媒體指的是在網絡中使用流技術傳輸的連續時基媒體&#xff0c;其特點是在播放前不需要下載整個文件&#xff0c;而是采用邊下載邊播放的方式&#xff0c;它是視頻會議、IP電話等應用場合的技術基礎。RTP是進行實時流媒體傳輸的標準協議和關鍵技術&#xff0c;本文介紹如何在L…

深入理解Solidity

Solidity源文件布局 pragma&#xff08;版本雜注&#xff09; 用于指定源文件的版本&#xff0c;表明編譯器的版本&#xff0c;例如 pragma solidity ^0.4.0^用于指代版本號需要大于0.4.0但是不可以超過大的層級&#xff0c;必須小于0.5.0也可以使用大于等于小于來指定版本 i…

H264 流媒體 編碼匯總

實時傳輸協議&#xff08;RTP&#xff09;和實時控制協議&#xff08;RTCP&#xff09; RTP是一種提供端對端傳輸服務的實時傳輸協議&#xff0c;用來支持在單目標廣播和多目標廣播網絡服務中傳輸實時數據&#xff0c;而實時數據的傳輸則由RTCP協議來監視和控制。 RTP定義在RFC…

使用多線程的方式調用chineseocr_API

ChineseOCR在線API 網頁鏈接 界面 提供多種接口調用方式&#xff0c;比如在線調用、Javascript api調用、curl api調用和python api調用四種方式&#xff0c;本次使用javascript api調用的方式進行OCR識別代碼 import glob import base64 import os import requests import …

開源好代碼 音視頻

VirtualDub 一、簡介 圖1VirtualDub主界面 VirtualDub是一款開源的音視頻捕獲、處理軟件。VirtualDub也可稱為一款多媒體編輯軟件&#xff0c;因為它包含了多媒體輸入、編輯、處理、輸出等各個環節&#xff0c;但是作者并未將它定位為一款多媒體編輯軟件&#xff08;參見官網&a…

MAC對于Excel表格換行操作

按住option之后&#xff0c;點擊Enter就可以完成換行操作

深入理解Solidity 二

Solidity數據位置 所有復雜的數據類型&#xff0c;即數組、結構和映射類型&#xff0c;都會有一個額外屬性“數據位置”&#xff0c;用來指定數據的存儲位置&#xff0c;即數據是存儲在memory還是存儲在storage里面根據上下文環境&#xff0c;IDE會自動指定數據的默認存儲位置…

VOIP簡介

一、什么是VOIP VOIP全稱為&#xff08;VoiceOver Internet Protocol&#xff09;&#xff0c;是一種利用Internet網絡進行語音通信的技術&#xff0c;更通俗一點說&#xff0c;就是IP電話。就是以IP分組交換網為傳輸平臺&#xff0c;對模擬的語音信號進行編碼壓縮&#xff0c…

深入理解Solidity 三

Solidity函數聲明和類型 函數的值類型有兩類&#xff1a;內部&#xff08;internal&#xff09;類型和外部&#xff08;external&#xff09;類型內部函數只可以在當前合約內部被調用&#xff08;即在當前代碼塊內&#xff0c;包括內部庫函數和繼承函數&#xff09;&#xff0c…

HTTP狀態代碼及其定義

狀態行包含HTTP版本、狀態代碼、與狀態代碼對應的簡短說明信息。在大多數情況下&#xff0c;除了Content-Type之外的所有應答頭都是可選的。但Content-Type是必需的&#xff0c;它描述的是后面文檔的MIME類型。雖然大多數應答都包含一個文檔&#xff0c;但也有一些不包含&#…

安裝solc模塊4.25版本

使用國產阿里云的cnpm 如果不知道cnpm 參考鏈接 安裝solc模塊4.25版本 npm i solc0.4.25 --save -g查看安裝是否成功 可以配置軟連接使用solc&#xff0c;我的沒有配置 solcjs --version

conda關鍵命令

創建環境 創建名字為python3的虛擬環境&#xff0c;并且指定conda的python版本為3.6--name也可以縮寫為-namepython3.6 是指定python的版本號,如果不指定就默認為裝anaconda時python版本python3是創建的新的虛擬環境的名字&#xff0c;創建完&#xff0c;虛擬環境安裝在anacon…

GDB 調試程序 詳解 使用實例

用GDB調試程序 GDB概述 ———— GDB是GNU開源組織發布的一個強大的UNIX下的程序調試工具。或許&#xff0c;各位比較喜歡那種圖形界面方式的&#xff0c;像VC、BCB等IDE的調試&#xff0c;但如果你是在UNIX平臺下做軟件&#xff0c;你會發現GDB這個調試工具有比VC、BCB的圖形化…

在pycharm中使用conda虛擬環境(conda虛擬環境是已經創建好的),解決python安裝包文件很費勁的問題

查看conda的虛擬環境 使用PyCharm連接conda創建的虛擬環境&#xff0c;需要一個前提就是虛擬環境必須存在&#xff0c;使用conda env list命令查看虛擬環境列表打開PyCharm軟件 打開pycharm&#xff0c;選擇File->setting->Project:****->Project Interperter&#…