一、HTTP概念
HTTP协议是Hyper Text Transfer Protocol的简称,意为超文本传输协议。超文本可以承载多种体裁,例如常见的HTML、CSS、Javascript,超文本传输协议是应用层协议,基于TCP协议。分为请求和响应,HTTP基本为语义简单的请求,同时也存在扩展空间;每一个请求之间孤立,是无状态的协议。
二、HTTP发展历程
最初在协议的设计上,比较简单,请求GET/mypage.html,响应只有HTML文档,称为单行协议;在发展过程中逐步构建可扩展性来满足诉求,增加了Header和状态码,丰富了可承载的语义和文档类型;在优化中增加了链接复用、缓存和内容协商,HTTP1.1成为标准化协议,也是目前使用最久的版本;之后HTTP2推出,有了更优异的表现,二进制协议、压缩header、服务器推送使得传输更加快速和稳定;HTTP目前还仍在研究。
三、协议分析(一)
常见请求有GET、POST、PUT等,还具有Safe和Idempotent的特点,是不会修改服务器的数据的方法,同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。
状态码,1xx代表指示信息,表示请求已接收,继续处理;2xx代表成功,表示请求已成功接收、理解、接受;3xx代表重定向,要完成请求必须进行更进一步的操作;4xx代表客户端错误,请求有语法错误或请求无法实现;5xx代表服务器端错误,服务器未能实现合法的请求。例如301表示资源网页等被永久转移到其他的URL,302表示临时跳转,404表示请求资源不存在,可能是输入了错误的URL,500表示服务器内部发生了不可预期的错误。
通过本节课的学习我对平时常见的http有了更进一步的认识,逐渐向其本质探索,尤其是状态码,是非常有意思的部分。