HTTP协议一些小笔记

80 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

我们为什么需要HTTP呢?

  1. Privacy:可以确保我们的隐私。如果我们没有确保我们的隐私,我们的信息很可能被监听,如果我们输入了一些很重要的密码,有不法分子监听到,那我们可就惨了。

  2. integrity:完整的,可以保证传输不会中断。如果我们的传输时可中断的,那一些不法分子很轻易地就可以把我们的消息拦截下来,可以修改我们的消息,然后再发给,目标服务器,这样传输的内容可能会带有危险性信息。

  3. Identification:可以识别的。浏览器可以识别发送的消息是否来自相应的电脑,每个电脑都有自己的电子证书,有了这些电子证书可以确保我们发送和接受就是我们需要的那个电脑!

HTTP的所处位置

  • 在图中,圈起红圈的部分就是http负责的部分,也就是发送请求,然后等待服务器的相应,响应得到以后就可以进行游览器的下一步渲染,这个就不是http的范围了。

  • 对于经典的TCP/IP五层协议,也就是应用层、传输层、网络层、数据链路和物理层组合的网络交互层。对于http,他是位于应用层的。对于https来说端口号是443,对于http来说端口号是80。

HTTP协议的一些具体内容

  • 这里对应的是http1.1协议。

  • 重要的最开始的一行,请求方需要声明所使用的协议版本是什么,例如通图中的协议就是http1.1版本。

  • 响应方是回复一些代码来相当此请求的状态是什么,例如图中就是403无权访问此资源。

  • 下面的信息是其他的一些信息,目前还不涉及。

HTTP-Metod

  • 对于这些方法有什么效果,图上面说的还是很清楚的,我们说说最主要的两个方式一个是GET,一个是POST

  • 对于GET:“GET”请求期望返回信息(通常以网站的形式)

  • 对于POST:“POST”请求通常表示客户端正在向 Web 服务器提交信息(例如表单信息,如提交的用户名和密码)。

  • HEAD,CONNECT,TRACE使用的是比较少的

HTTP的状态码

  • 如果响应以“4”或“5”开头,则表示存在错误,并且不会显示网页。以“4”开头的状态代码表示客户端错误(在 URL 中打错字时,经常会遇到“404 NOT FOUND”状态代码)。以“5”开头的状态代码表示服务器端出了问题。状态码也可以以“1”或“3”开头,分别表示信息响应和重定向

HTTP的RESTful API

  • 理解为客户端可以根据服务端提供的API对服务端进行一些操作

常用的请求头

常用响应头

对于缓存的总过程

  1. 游览器先发起GET请求向服务器请求相关文件。

  2. 再发起以后会检查我们是否有缓存这个东西,如果我们有就进行下一步。

  3. 检测我们的强缓存是否新鲜,这个新鲜程度是max-age属性来检测的,单位时秒,超过这个时间我们可以判断为不新鲜了。

  4. 如果不新鲜了,我们就跳过了强缓存阶段来到了协商缓存。协商缓存也是有先后的顺序,显示执行Etag,不符合Etag以后才会执行LM。

  5. 浏览器没有命中强缓存并走协商缓存时就把这些值跟资源文件的信息进行比对。如果资源没更改,返回304,浏览器读取本地缓存。 如果资源有更改,返回200,返回最新的资源。