二、简单的HTTP协议
二、简单的HTTP协议
娇娇jojojo 发表于3个月前
二、简单的HTTP协议
  • 发表于 3个月前
  • 阅读 50
  • 收藏 0
  • 点赞 1
  • 评论 0
摘要: 这部分主要针对HTTP协议结构进行讲解,包括HTTP是在什么之间进行通信,靠什么通信,以及HTTP支持的方法; 还有HTTP的进化史,曾经的弊端,现在是怎么进行进化和蜕变的。

二、简单的HTTP协议

这部分主要针对HTTP协议(主要针对HTTP/1.1)结构进行讲解,包括HTTP是在什么之间进行通信,靠什么通信,以及HTTP支持的方法;
还有HTTP的进化史,曾经的弊端,现在是怎么进行进化和蜕变的。

1、通信

(1)HTTP协议用于客户端和服务端之间的通信

应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务端角色。

(2)通过请求和响应的交互达到通信

请求必定由客户端发出,而服务端回复响应。

请求报文

GET /index.html HTTP/1.1
Host: hackr.jp

对上面的内容进行解析请求报文的构成:

响应报文

HTTP/1.1 200 OK
Date: Tue 10 Jul 2017 06:50:15 GMT
Content-Length:362
Content-Type: text/html

<html>
......

对上面的内容进行解析响应报文的构成:

(2)HTTP方法

HTTP方法用于客户端给服务器下达命令。

下表是HTTP/1.0和HTTP/1.1支持的方法:

方法 说明 支持的HTTP协议版本
GET 获取资源 1.0、1.1
POST 传输实体主体 1.0、1.1
PUT 传输文件 1.0、1.1
HEAD 获取报文首部 1.0、1.1
DELETE 删除文件 1.0、1.1
OPTIONS 询问支持的方法 1.1
TRACE 追踪路径 1.1
CONNECT 要求用隧道协议连接代理 1.1
LINK 建立和资源之间的联系 1.0
UNLINK 断开连接关系 1.0

 

2、进化史

(1)无状态 VS Cookie

我们知道,HTTP是无状态协议,也就是HTTP协议自身不具备保存之前发送过的请求或响应的功能。

HTTP无状态的特点,有利有弊。

  • 优点就是速度快,能够快速处理大量事物;
  • 缺点就是随着web的不断发展,无状态会导致业务处理变得棘手。比如说用户登录到一家购物网站,如果无状态,会导致用户跳转到该站的其他页面后,无法继续保持登录状态。

所以为了实现期望的保存状态功能,引入Cookie技术。

下图展示了没有cookie和有了cookie之后的请求:

我们可以看一下请求报文和响应报文有cookie和没cookie的区别:

(1)没有cookie的请求报文

GET /index.html HTTP/1.1
Host: hackr.jp

(2)有cookie的响应报文

HTTP/1.1 200 OK
Date: Tue 10 Jul 2017 06:50:15 GMT
Server: Apache
<Set-Cookie:sid=134780956002374590924; path=/; expires=Wed,=>10 Jul 2017 06:50:15 GMT>
Content-Type: text/plain; charset=UTF-8

(3)有cookie的请求报文

GET /index.html HTTP/1.1
Host: hackr.jp
Cookie: sid=134780956002374590924

 

(2)非持久连接VS 持久连接

在http1.0中,一个request,一个response,一个周期就结束了。

在http1.1中,有了keep-alive,可以发送多个Request,接收多个Response(但一个request还是对应一个response),也就是持久连接。

(1)持久连接

一个request,一个response,但只要任意一端没有明确提出断开,就保持连接。

(2)管线化

发送多个Request,接收多个Response。

请求数越多,时间差就越明显。

共有 人打赏支持
粉丝 131
博文 45
码字总数 50373
×
娇娇jojojo
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: