这是我参与「第五届青训营」笔记创作活动的第8天。
本笔记对应的是青训营关于HTTP协议的课程中对HTTP协议相关的基本概念的知识部分。
1 课程内容概括
HTTP协议是常用的协议。本课程针对HTTP相关的基本知识做出了介绍。
2 HTTP基本概念
HTTP全称HyperText Transfer Protocol,超文本传输协议。它是一种应用层协议,基于TCP协议,是无状态的,包含请求和响应两部分,具有简单、可扩展的特点。
HTTP有0.9、1.0、1.1、2、3等版本,1997年的HTTP1.1协议是标准化协议,而2015年发布HTTP2有更优异的表现,并且得到了广泛使用,在2016年中期已经有68%的请求都是HTTP2了。
HTTP2通信的最小单位是帧,每个帧都包含帧头,至少会标识当前帧所属数据流。
消息是指与逻辑请求或响应消息对应的完整的一系列帧。
数据流是指已经建立连接内的双向字节流,可以承载一条或多条消息。
HTTP2的连接是永久的,仅需要每个来源一个连接。
可以通过流控制阻止发送方向接收方发送大量数据。
3 HTTP协议分析
常见的HTTP方法有GET、POST、PUT、DELETE、HEAD、CONNECT、OPTIONS、TRACE、PATCH。
安全的方法是指不会修改服务器数据的方法,包含GET、HEAD、OPTIONS
幂等的方法是指同样的请求被执行一次或者连续执行多次,产生的效果是一样的。服务器的状态也一样。所有安全的方法都是幂等的。包含GET、HEAD、OPTIONS、PUT、DELETE。
状态码:1开头的是指示信息,2开头的是成功,3开头的是重定向,4开头的是客户端错误,5开头的是服务器错误。
RESTful API是一种API设计风格。
(1)每一个URI代表一种资源。
(2)客户端和服务器之间,传递这种资源的某种表现层。
(3)客户端通过HTTP方法对服务器资源操作,实现表现层状态转化。
常用的请求头有Accept、Content-Type、Cache-Control、If-Modified-Since、Expires、Max-age、If-None-Match、Cookie、Referer、Origin、User-Agent;常用的响应头有Content-Type、Cache-Control、Last-Modified、Expires、Max-age、ETag、Set-Cookie、Server、Access-Control-Allow-Origin。
4 总结与思考
本笔记涉及到HTTP协议的基本概念、发展历史、协议分析。这些基本概念属于计算机网络基础,应该了解。