这是我参与「第五届青训营 」笔记创作活动的第5天
1.什么是HTTP
当我们在使用浏览器的时候,浏览器是如何处理我们输入的信息并渲染出相应的页面的呢
通过这张图我们可以大致地了解到这个过程,我们主要看红色方框中与网络相关的部分
通过一个简单的hello的message请求,我们可以大概看到HTTP的五个特点
- http是超文本的,可以传输文本之外的很多信息,比如html,css,js,还有一些api
- http是基于tcp协议的应用层协议
- http主要由请求和响应组成
- http请求的构成是比较简单的,我们可以手动加一些请求头什么的对其进行扩展
- hhtp的每一个请求都是相对独立的,在发出一个请求的时候,我们一般不知道前面都进行了什么样的请求
2.协议分析
我们以http1.1为例来分析一下报文的结构及其包含了哪些信息
2.1 metrhod方法
常见的方法有
post、get、delete等
其中
GET HEAD OPTIONS被称为safe,安全的、不会修改服务器数据的方法
GET HEAD OPTIONS PUT DELETE被称为idempotent,幂等,也就是说同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的
所有的safe方法都是idempotent的
2.2 状态码
常见的一些状态码
2.3 header
其中与缓存有关的header有
这其中的强缓存意思是,如果我们请求的资源本地已经有了,那么我们直接拿来用就好了,而协商缓存的意思是如果我们请求的资源本地有,那也不能直接用,我们需要和server服务器进行一个沟通和协商的过程。
etag和last-modified是response中会携带的信息,if-none-match和if-modified-since是请求中会携带的信息