第二章 简单的HTTP协议

针对HTTP协议结构进行讲解

1.通过请求和响应的交换来达成通信目的

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

  【请求报文】是由请求方法、URI、协议版本、请求首部字段、内容实体组成的。

  【响应报文】是由协议版本、状态码、状态码原因短语、响应首部字段、响应实体组成的。

2.HTTP是不保存状态的协议(无状态)

  HTTP 是一种不保存状态,即无状态协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。这是为了更快的处理大量事务,确保协议的可伸缩性。

3.请求方法

GET】获取资源

POST】传输实体主体,虽说POST和GET作用类似,但是POST主要目的不是获取响应的主题内容,而是为了传输内容给服务端。

PUT】传输文件:要求请求主体里包含文件内容。

HEAD】获得报文首部:HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认URI 的有效性及资源更新的日期时间等。

DELETE】删除文件

OPTIONS】询问支持的方法:用来查询针对请求URI指定的资源支持的方法。

TRACE】追踪路径:让Web服务端将之前的请求通信还会给客户端。

CONNECT】要求用隧道协议连接代理:主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

 4.持久连接节省通信量

  持久连接特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。称为keep-alive或者connection reuse。目的是为了建立一次TCP连接后进行多次请求和响应的交互。HTTP/1.1中所有的连接默认是持久连接,但在HTTP/1.0未标准化。

  【管线化】从前发送请求后需要收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应就可以直接发送下一个请求。这样就可以实现并行发送多个请求。

5.使用Cookie的状态管理  

  HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。所以引入Cookie技术,Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端状态。

  Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

  服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

最新文章

  1. [ZigBee] 11、ZigBee之睡眠定时器二
  2. 给view添加类似系统上拉快捷菜单的手势
  3. vs 2015 写php太爽了,毕竟我接触的第一款ide就是vs啊
  4. EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据
  5. 通过数据库方式访问excel 2007及其以后(xlsx)文件的连接字符串
  6. 玩转JS插件系列
  7. JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-007UserTypes的用法(@org.hibernate.annotations.Type、@org.hibernate.annotations.TypeDefs、CompositeUserType、DynamicParameterizedType、、、)
  8. SQLite : 解决“找不到请求的 .Net Framework 数据提供程序。可能没有安装”的问题
  9. 关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思
  10. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
  11. Java的锁
  12. ios监听静音键和音量键事件
  13. 【Git学习一】Git 初始化
  14. SDWebImage之UIView+WebCache
  15. leetcode 443. String Compression
  16. 牌型种数|2015年蓝桥杯B组题解析第七题-fishers
  17. spyder快捷键
  18. do you\have you\are you
  19. timer Compliant Controller project (1)--Product introduction meeting
  20. 工作笔记——js与文件上传下载

热门文章

  1. Redis 实现美团的外卖派单系统“附近的人”筛选实战原理分析
  2. Android PopupWindow增加半透明蒙层
  3. 一文解读JSON (转)
  4. 产品经理如何使用 CODING 进行项目规划
  5. tensorflow基本用法个人笔记
  6. python与数据库交互的模块pymysql
  7. SQL Server事务复制(sql 2008 r2)
  8. JVM内存模型与类加载机制
  9. event demo
  10. ThinkPHP中框架查询