超文本传送协议 HTTP(23)

HTTP 的操作过程

为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。

从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

HTTP 的主要特点

HTTP 是面向事务的客户服务器协议。

HTTP 1.0 协议是无状态的(stateless)。

HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。

HTTP发展阶段

0.9

0.9协议是适用于各种数据信息的简洁快速协议,但是远不能满足日益发展的各种应用的需要。0.9协议就是一个交换信息的无序协议,仅仅限于文字。由于无法进行内容的协商,在双发的握手和协议中,并有规定双发的内容是什么,也就是图片是无法显示和处理的。

1.0

到了1.0协议阶段,也就是在1982年,TimBerners-Lee提出了HTTP/1.0。在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。

1.1

在1.0协议中,双方规定了连接方式和连接类型,这已经极大扩展了HTTP的领域,但对于互联网最重要的速度和效率,并没有太多的考虑。毕竟,作为协议的制定者,当时也没有想到HTTP协议会有那么快的普及速度。

关于HTTP1.1协议的具体内容可以参考RFC 2616。 

2.0

HTTP2.0的前世是HTTP1.0和HTTP1.1。虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼。网络协议新版本并不会马上取代旧版本。实际上,1.0和1.1在之后很长的一段时间内一直并存,这是由于网络基础设施更新缓慢所决定的。 

关于HTTP2.0协议的具体内容可以参考RFC 7540。

参考http

请求一个万维网文档所需的时间

超文本传送协议 HTTP(23)

HTTP 的报文结构

HTTP 有两类报文:

请求报文——从客户向服务器发送请求报文。

响应报文——从服务器到客户的回答。

由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

HTTP 的报文结构(请求报文)

报文由三个部分组成,即开始行、首部行和实体主体。 在请求报文中,开始行就是请求行。

超文本传送协议 HTTP(23)

“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。

超文本传送协议 HTTP(23)

HTTP 请求报文的一些方法

方法(操作)                   意义

OPTION           请求一些选项的信息

GET                  请求读取由 URL所标志的信息

HEAD            请求读取由 URL所标志的信息的首部

POST            给服务器添加信息(例如,注释)

PUT               在指明的 URL下存储一个文档

DELETE        删除指明的 URL所标志的资源

TRACE           用来进行环回测试的请求报文

CONNECT       用于代理服务器

“URL”是所请求的资源的 URL。

超文本传送协议 HTTP(23)

“版本”是 HTTP 的版本。

超文本传送协议 HTTP(23)

HTTP 的报文结构(响应报文)

响应报文的开始行是状态行。

状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。

超文本传送协议 HTTP(23)

HTTPS

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。

SSL (Secure Sockets Layer 安全套接层)

SSL协议可分为两层:

SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加***等。

HTTP与HTTPS区别

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

在服务器上存放用户的信息

万维网站点使用 Cookie 来跟踪用户。

Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。

使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。