HTTP之简介与请求响应流程

目录

一、HTTP版本

1.HTTP/0.9

2.HTTP/1.0

3.HTTP/1.1

4.HTTP/2

二、HTTP与HTTPS区别

1.是否收费

2.是否加密

3.连接方式

4.安全性

三、请求与响应流程

四、HTTP请求报文

1.请求行

2.请求头

3.请求体(浏览器发送给服务器的数据)

五、HTTP响应报文 

1.响应行

2.响应头

3.响应体 (服务器返回给浏览器的数据)


一、HTTP版本

1.HTTP/0.9

HTTP 0.9是第一个版本的HTTP协议,1991年发布。它的组成极其简单,只允许客户端发送GET这一种请求,且不支持MIME类型和请求头。由于没有协议头,造成了HTTP 0.9协议只支持一种内容,即纯文本。不过网页仍然支持用HTML语言格式化,同时无法插入图片。

HTTP 0.9具有典型的无状态性,每个事务独立进行处理,事务结束时就释放这个连接。由此可见,HTTP协议的无状态特点在其第一个版本0.9中已经成型。一次HTTP 0.9的传输首先要建立一个由客户端到Web服务器的TCP连接,由客户端发起一个请求,然后由Web服务器返回页面内容,然后连接会关闭。如果请求的页面不存在,也不会返回任何错误码

2.HTTP/1.0

HTTP/1.0是在1996年发布,在原来HTTP/0.9的版本上添加了许多方法,各种HTTP首部,以及对多媒体对象的处理,是请求和响应消息的协议版本。除了GET命令,还引入了POST命令。HTTP的请求和回应格式也变了,除了数据部分,每次通信都必须包含头信息(HTTP Header),用来描叙一些元数据。相对于HTTP/0.9,HTTP/1.0也支持了MIME,使HTTP协议扩大了处理的数据类型,支持对多媒体流信息的处理。

虽然,HTTP/1.0相对于HTTP/0.9有了革命性的改变,但HTTP/1.0依然有一些缺点,主要就是每个TCP连接只能发生一个请求,发送数据完毕之后连接就会自动关闭,如果还要再请求其他的资源,就要再创建一个连接。有些浏览器为了解决这个问题,用了一个非标准的Connection头部,也就是Keep-Alive模式(Connection:Keep-Alive)来避免了重新建立连接。但这个不是标准头部,各个浏览器和服务器实现可能不一致,因此不是根本解决办法。

3.HTTP/1.1

HTTP/1.1在1999年正式发布,是目前用得最广泛的协议版本

HTTP1.1在HTTP1.0的基础上实现的一次飞跃,主要的改进集中在性能、安全、数据类型处理等方面提出Server端缓冲 对象的概念,是减少网络上相同类型内容的反复传送,提高访问速度。默认的是Keep-Alive模式(持久连接),提高了性能。同时还增加了Host协议头Range分段请求分块传输编码(chucked)缓存处理请求的流水线处理等功能。

4.HTTP/2

HTTP/2是最新的HTTP协议,与2015年5月发布,谷歌、IE11以及火狐等浏览器已经支持HTTP/2协议了。

注意是HTTP/2而不是HTTP/2.0,因为IEFT(互联网工程任务组)认为HTTP/2已经很成熟了,没有必要再发布子版本了,以后要是有重大改动就直接发布HTTP/3。而HTTP/2与HTTP/1.1也存在着挺大的差别,HTTP/2增加了二进制协议多路复用头部压缩服务器推送等功能。

二、HTTP与HTTPS区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层SSL超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS和HTTP的区别主要为以下四点:

1.是否收费

HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。

2.是否加密

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

3.连接方式

HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80后者是443

4.安全性

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

三、请求与响应流程

四、HTTP请求报文

1.请求行

POST /ECAS2017_war_exploded/system/loginController/login HTTP/1.1

(1) POST请求方法。以post方式去提交请求

(2)/ECAS2017_war_exploded/system/loginController/loginURL请求地址

(3)HTTP/1.1协议版本

2.请求头

请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔

请求头说明
Accept通知服务器端可以发送的数据类型
Content-Type提交的数据类型
Host接收请求的服务器地址,可以使IP:端口号,也可以是域名
Referer真正请求的地址路径,全路径
User-Agent向服务器表明,当前来访的客户端信息
Host主机地址
Connection指定相关连接的属性,如Connection:Keep-Active
Accept-Charset通知服务端可以发送的编码格式
Accept-Encoding通知服务端可以发送的数据压缩格式
Accept-Language通知服务端可以发送的语言
Cache-Control对缓存的操作

3.请求体(浏览器发送给服务器的数据)

userName=admin&userPwd=e10adc3949ba59abbe56e057f20f883e

五、HTTP响应报文 

1.响应行

HTTP/1.1 200 OK

(1) HTTP/1.1协议版本

(2)200状态码 

(3)OK状态码描述

2.响应头

响应头说明
Server服务器类型
Content-Type服务器返回给客户端的数据类型
Content-Length 返回的数据长度
Date通讯的日期,响应的时间

3.响应体 (服务器返回给浏览器的数据)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值