超文本传输协议

超文本传输协议


 超文本传输协议
超文本传输协议

超文件传输协定(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.mzph.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&#…