`
jimmy.shine
  • 浏览: 389395 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP协议的运作方式

    博客分类:
  • Http
阅读更多

HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成(见图2-1)。
图2-1 

当一个或多个中介出现在请求/响应链中时,情况就变得复杂一些。中介由三种:代理(Proxy)、网关(Gateway)和通道(Tunnel)。一个代理根据URI的绝对格式来接受请求,重写全部或部分消息,通过URI的标识把已格式化过的请求发送到服务器。网关是一个接收代理,作为一些其它服务器的上层,并且如果必须的话,可以把请求翻译给下层的服务器协议。一个通道作为不改变消息的两个连接之间的中继点。当通讯需要通过一个中介(例如:防火墙等)或者是中介不能识别消息的内容时,通道经常被使用。图2-2> 

上面的图2-2表明了在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C)。一个通过整个链的请求或响应消息必须经过四个连接段。这个区别是重要的,因为一些HTTP通讯选择可能应用于最近的连接、没有通道的邻居,应用于链的终点或应用于沿链的所有连接。尽管图2-2是线性的,每个参与者都可能从事多重的、并发的通讯。例如,B可能从许多客户机接收请求而不通过A,并且/或者不通过C把请求送到A,在同时它还可能处理A的请求。
  任何针对不作为通道的汇聚可能为处理请求启用一个内部缓存。缓存的效果是请求/响应链被缩短,条件是沿链的参与者之一具有一个缓存的响应作用于那个请求。下图说明结果链,其条件是针对一个未被UA或A加缓存的请求,B有一个经过C来自O的一个前期响应的缓存拷贝。
图2-3 

在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。
  以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过程。
  首先,简单介绍基于HTTP协议的客户/服务器模式的信息交换过程,如图2-4所示,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。
图2-4 

在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。WWW服务器运行时,一直在TCP80端口(WWW的缺省端口)监听,等待连接的出现。
  下面,讨论HTTP协议下客户/服务器模式中信息交换的实现。  1.建立连接  连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
  2.发送请求
  打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。
  HTTP/1.0  请求消息的格式为:
  请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
  请求 行=方法 请求URL HTTP版本号 CRLF
  方  法=GET|HEAD|POST|扩展方法
  U R L=协议名称+宿主名+目录与文件名
  请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
  对象      GET的结果
  文件      文件的内容
  程序      该程序的执行结果
  数据库查询   查询结果
  HEAD——要求服务器查找某对象的元信息,而不是对象本身。
  POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
  一个请求的例子为:
  GEThttp://networking.zju.edu.cn/zju/index.htmHTTP/1.0
  头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。
  请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
  实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
  实体——请求或应答对象本身。
  3.发送响应
  服务器在处理完客户的请求之后,要向客户机发送响应消息。
  HTTP/1.0的响应消息格式如下:
  响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
  状态行=HTTP版本号 状态码 原因叙述
  状态码表示响应类型
  1××  保留
  2××  表示请求成功地接收
  3××  为完成请求客户需进一步细化请求
  4××  客户错误
  5××  服务器错误
  响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。
4.关闭连接
  客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话

 

分享到:
评论

相关推荐

    Http权威指南中文版(高清)

    《HTTP权威指南》由古尔利所著,《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。...

    C#实现HTTP协议迷你服务器(两种方法)

    本文以两种稍微有差别的方式用C#语言实现HTTP协议的服务器类,之所以写这些,也是为了自己能更深刻了解HTTP底层运作。要完成高性能的Web服务功能,通常都是需要写入到服务,如IIS,Apache Tomcat,但是众所周知的Web...

    Http权威指南中文版

    《HTTP权威指南》由古尔利所著,《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。...

    protochrome:Chrome自定义协议处理,simon和garfunkle样式

    如果您想在Chrome中处理自定义协议而无需操作静态远程域,则可以将该模式重新用于任何情况。 这个怎么运作 扩展程序检测到在多功能框中键入了'ndn'关键字...一旦用户启用了扩展程序并开始输入,扩展程序便会启动...

    常见计算机网络问题详解

    这份资源是我对计算机网络中常见问题的学习总结,涵盖了HTTP协议、TCP协议、IP协议等相关知识,并包含了丰富的图解内容。在整理这些内容时,我尽可能地以简单明了的方式呈现,以便更多人可以轻松学习。虽然对初学者...

    Web服务器性能测试研究

    2.2 HTTP协议的运作方式 6 2.2.1 HTTP协义基本介绍 6 2.2.2 HTTP 协议组成 7 2.2.3 TCP 对 HTTP的影响 9 2.3 Socket通信 10 2.4 Web服务器性能测试 11 2.5 影响Web服务器性能测试的主要因素 13 2.5.1 用户访问特征 ...

    standard-shipping-gateway-protocol:本文件规定了标准运输网关协议,该协议定义了在线销售平台和运输网关之间的计算机化交易消息

    标准运输网关协议 ... 这些规范考虑了大多数商业销售平台和运输网关的运作方式。 正确实施后,它们应该允许交钥匙互操作性,而无需专门为每个供应商定制您的软件。 该协议建立在 HTTP 之上,并遵循 RES

    flaxton-proxy:使用 FNTP 协议实现的 Flaxton 代理服务器用于 http

    为了处理 TCP 流量,Flaxton Proxy 接收 TCP 并将其转换为 FNTP,以便在负载平衡模式下在多个云服务器之间更好地通信,执行后 Flaxton Proxy 使用 FNTP 协议从服务器获取响应并将其作为 TCP 流量发送回客户端。...

    使用 NodeMCU V3微控制器控制 Wifi Car 的简单代码__代码_相关文件_下载

    ESP8266 芯片能够创建自己的 WIFI 网络(接入点模式 = AP)或连接到现有的 wifi 网络(站模式 = STA)。也可以部署 HTTP 服务器。 为简单起见,智能手机必须连接到与芯片相同的 wifi 网络,并知道其 IP 地址和...

    国家标准osi模型与组建

    摘 要 谈到网络不能不谈OSI参考模型,虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考。OSI参考模型分为七层,虽然国际标准化组织...

    项目8-局域网服务器的搭建.pptx

    TCP/IP应用层协议 TCP/IP应用层 域名系统(DNS) 超文本传输协议(HTTP) 简单邮件传输协议(SMTP) 文件传输协议(FTP) 简单文本传输协议(TFTP) 简单网络管理协议(SNMP) 远程登录协议(Telnet) 项目8-局域网服务器的搭建...

    企业政府中帆智能建站系统基础版JSP版-basic3.rar

    通过实施该系统,学生不仅能够学习到JSP和Java技术栈的使用,还能够深入理解Web应用程序的运行机制,包括HTTP协议、Servlet容器的运作方式、数据库交互等。此外,学生可以通过自定义功能模块和界面设计来拓展系统的...

    RealTime_ChatAPP_using_Node.js_Socket.io:这是在Node.js和Socket.io的帮助下开发的实时聊天应用程序。 它允许服务器与用户之间建立双向连接,这有助于实时传输信息。 这确实比服务器端通信中使用的常规协议快得多

    这是有关Socket.io的工作方式以及它比普通服务器端通信更好的信息。 Socket.IO是一个库,可用于在浏览器和服务器之间进行实时,双向和基于事件的通信。 它包括: Node.js服务器:源| API浏览器的Javascript客户端...

    ASP EXCEL导入SQL

    而当前的网络服务技术都需要使用其它手段来完成数据处理工作,它们完全独立于HTTP协议来进行的,这样增加了大量的复杂软件架构设计工作。REST的思想充分利用了现有的HTTP技术的网络能力。在德国电视台上曾经出现过一...

    网站计数器(源码ASP)

    3.页面显示记数和IP防刷新记数两种记数模式,支持Script方式和Img方式调用计数器代码。 4.可以记录来访客的来源IP地址和来源页面信息,在线人数。 5.每月、每天和每小时的访问数据统计,回头率统计,每个网页浏览统计...

    networking:我的计算机网络课程项目 (http

    本课程重点介绍互联网的运作方式。 我们将从查看 Internet 的真实面貌开始,即大量互连的计算机网络,并分析设备如何连接到 Internet 以交换信息。 我们将首先分析一些最重要的应用协议,例如 HTTP、SMTP、DNS 等,...

    个人网站-论文 和设计

    Web采用浏览器/服务器(B/S)工作模式,其运作模式可以描述为:请求→处理→应答。 Web以超文本标记语言HTML(Hyper Text Markup Language)与超文本传输协议HTTP(Hyper Text Transfer Protocol)为基础,通过浏览器为...

    gmailstore

    只使用HTTP/HTTPS协议,只要能上网的地方就可以使用; 利用了GMail的标签功能,更利于检索.GMailStore 3.0.1新特点:1。支持多帐户同时登陆、不再与IE浏览器设置相关; 2。上传/下载在后台运作,不影响同时进行界面...

    [原创]FavChat爱聊全能隐蔽穿透型聊天平台完整源码源程序包(Hedda)

    ■ 本平台的设计初衷其实是为方便我和妻子日常交流,大型企业里一般都限制即时通讯软件的使用,于是我运用所学开发了具备一定隐蔽性和系统热键功能的私人聊天工具,加上通用型的HTTP协议和XML节点内的密码验证,...

Global site tag (gtag.js) - Google Analytics