前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原 二、简单的HTTP协议

原 二、简单的HTTP协议

作者头像
jojo
发布2018-05-03 15:14:49
4390
发布2018-05-03 15:14:49
举报
文章被收录于专栏:jojo的技术小屋jojo的技术小屋

二、简单的HTTP协议

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

1、通信

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

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

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

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

请求报文

代码语言:javascript
复制
GET /index.html HTTP/1.1
Host: hackr.jp

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

响应报文

代码语言:javascript
复制
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的请求报文

代码语言:javascript
复制
GET /index.html HTTP/1.1
Host: hackr.jp

(2)有cookie的响应报文

代码语言:javascript
复制
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的请求报文

代码语言:javascript
复制
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。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、简单的HTTP协议
    • 1、通信
      • (1)HTTP协议用于客户端和服务端之间的通信
      • (2)通过请求和响应的交互达到通信
      • 请求报文
      • 响应报文
      • (2)HTTP方法
    • 2、进化史
      • (1)无状态 VS Cookie
      • (2)非持久连接VS 持久连接
      • (1)持久连接
      • (2)管线化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档