2.2Web和Http
2.2.0 Web
什么是Web?它与http又有什么关系呢? Web是互联网的总称,即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。web是建立在Internet上,可以为浏览者在Internet上查找和浏览信息提供了图形化的界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。web分为Web客户端和Web服务器程序。 www.可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。
简单来说对于用户来说Web就是网页应用。
2.2.1 HTTP
Web的应用层协议即为超文本传输协议(HyperText Transfer Protocol,HTTP),那么什么是超文本呢?超文本(Hypertext)是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。所以Http就是文本相互传输数据的协议。Web页面就是有各种文本组成的,或者高级一点我们称之为对象,诸如HTML、一个JPEG图像、一个Java小程序或者一个视频片段,正常来说Web页面包括一个基本HTML的文件,也就是我们经常看到的网页文件,一个文件便称为一个对象。HTML基本文件通过URL来引用页面的其他应用。URL包括两个部分,一个是存放对象的服务器主机名和对象的路径名。

2.2.2 非持续连接和持续连接
在许多因特网应用程序中,客户和服务器在一个相当长的时间范围内通信,其中客户发出一系列请求并且对每个请求进行响应。这种请求是基于TCP协议进行连接的,我们知道,TCP协议中是由三次握手创建连接这个过程的。如此Web设计者必须思考每次响应是由一个单独的TCP响应每一个请求,还是选择同一个TCP连接来响应呢?我们把前者称之为非持续连接,把后者称为持续连接。让我们详细的讨论这两种过程。
-
非持续连接
HTTP客户接收响应报文后,TCP连接关闭。每个TCP连接只传输一个请求报文和一个响应报文,这样产生的TCP连接就会很多。
实际上,浏览器可以打开5~10个并行的TCP连接,而每条连接处理一个请求响应事务,很明显,这样能够节省时间。
往返时间RTT:指的是一个短分组从客户到服务器然后再返回客户所花费的时间。RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延。粗略来说,请求并接收一个HTML文件所需的时间就是两个RTT加上服务器传输HTML文件的时间 -
采用持续连接的HTTP
非持续连接的缺点就是,客户和服务器都要分配TCP的缓冲区和保持TCP变量,web服务器的负担会大;而且每个对象会遭受两倍的RTT的交付时延,即一个RTT用于创建TCP,另一个RTT用于请求和接收一个对象。采用持续连接时,服务器发送响应后保持该TCP连接打开。在相同的客户与服务器之间的后续请求和响应报文能够通过相同的TCP连接进行传送。那么,如果一条连接经过一定的时间间隔(一个可配置的超时间隔)仍未被使用,HTTP服务器就关闭该连接。HTTP的默认模式是使用带流水线的持续连接。
2.2.3 HTTP报文格式
HTTP报文分为请求报文和响应报文两种。
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
其中请求行包括了三个字段:方法字段、URL字段、HTTP版本字段,其中方法字段包括GET、POST、PUT、DELETE等


应答报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。

一些常见状态码


2346

被折叠的 条评论
为什么被折叠?



