[HTTP-2]-简单的HTTP协议(上)
Posted 他们已经在路上了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[HTTP-2]-简单的HTTP协议(上)相关的知识,希望对你有一定的参考价值。
上节已经描述了HTTP协议的基础,该节主要描述HTTP协议的结构。
[HTTP-2]文章结构
HTTP协议用于客户端和服务器端之间的通信
客户端:请求访问文本或图像等资源的一端称为客户端。
服务器端:提供资源响应的一端称为服务器端。
HTTP协议通过请求和响应的交换达成通信
通信过程:
HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换言之,肯定是从客户端建立通信,服务器端在收到客户端的请求之前是不会发送响应的。
客户端的请求报文
下面来看一个标准的示例:
下面对从客户端发送给某个HTTP服务器端的请求报文中的内容简单解读:
GET/index.htm HTTP/1.1
Host:www.baidu.com
GET: 第一行开头的GET表示请求访问服务器的类型,称之为方法(method)。
/index.htm: 是指请求访问的资源对象,也叫作请求URI。
HTTP/1.1: 是指HTTP的版本号,用来提示客户端使用的HTTP协议功能。
综上所述, 这段请求的内容意思就是:请求访问某台HTTP服务器上的/index.htm页面的资源。
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。(见下图)
服务器的响应报文
当服务器端接收到请求,会将请求内容的处理结果以响应的形式返回。
我们来看看下面这段从服务器端返回的内容:
HTTP/1.1200ok
Date:Tue,10Jul201206:50:15GMT
Content-Type:text/html
<html>
......
HTTP/1.1: 表示服务器对应的HTTP版本。
200 OK: 表示请求的处理结果的状态码和原因短语。
响应时间: 下边显示了创建响应的日期时间,是首部字段内的一个属性。
再下边以一空行分隔,之后的内容成为资源实体的主体。
响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用来解释状态码的原因短语、可选的响应首字段以及实体主体构成。
HTTP是不保存状态的协议
无状态存在的问题:
随着Web的不断发展,因无状态而导致业务处理变得棘手的情况越来越多。比如,用户登录到一家购物网站,即使跳转到该网站的其他页面后,也需要依然保持登录状态。针对这个实例,网站为了能够掌握是谁送出的请求,需要保存用户的状态。
Cookie技术引入解决无状态问题:
HTTP/1.1虽然是无状态协议,但是为了实现期望的保持状态功能,于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管理状态了。有关Cookie的内容后续再讲解。
请求URI定位资源
URI为完整的请求URI:
GET http://www.baidu.com/index.htm HTTP/1.1
在首部字段Host中写明网络域名或IP名称:
GET /index.htm HTTP/1.1 Host:www.baidu.com
OPTIONS * HTTP/1.1
(也即是说可以用这个方法查询HTTP服务器支持哪些访问方法,下集我们就讲讲HTTP中可用的方法等内容)
以上是关于[HTTP-2]-简单的HTTP协议(上)的主要内容,如果未能解决你的问题,请参考以下文章