http协议学习笔记
关于HTTP协议
位于网络协议7层(如下图)中的应用层,主要用来进行客户端和服务按数据交互。
为什么用它呢
因为简单、灵活、无状态。
- 简单:只需要通过请求方法请求资源路径即可
- 灵活:传输数据类型可以是任意类型
- 无状态:链接只负责数据交互,不进行保存,所以彼此间不存在依赖,比较简单明了。当然是有好处,但是也导致了需要做一些请求验证时,就需要使用一些其他的手段,比如session、token。
关于HTTP协议的版本的内容(就写了自己知道的=.=,毕竟东西太多了[我太菜了])
0.9版本
- 只有GET一个请求方法
- 没有header等描述数据的信息
- 为短连接,当服务器发送完毕数据后,就关闭TCP通道。
1.0版本
- 增加了很多请求方法(POST等)
- 怎么加了状态码和header等描述数据的信息
- 有了If-Modified-Since,Expires处理缓存
1.1版本(现在使用)
- 增加了持续链接!重点!
- 增加host域,可以在同一台服务器,跑多个web服务
- 增加了更多的缓存处理策略,如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等
未来—2.0版本
- 所有数据都以2进制传递
- 支持同一通道的多有请求,同时发送,1.1中。可以开多个TCP通道,但每个通道上的请求,一次一个,需要按照顺序进行发送
- 支持服务端向客户端推送消息等
HTTP协议的组成
HTTP有请求和响应报文两种类型,但是组成部分如图所示,都是有三部分组成
1.起始行,一般由一下三部分构成,空格隔开每一部分;通过换行和首部隔开。
- 请求地址
- 请求的方法(methods),有GET/POST/DELETE/PUT/HEAD
- http协议版本号
- 状态码
2.首部(Headers)
3.主体(要发送的内容、接受到的内容)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!