http/https协议、常见状态码、get/post、http缓存机制 看这篇就够了

Http/Https协议

前言
在网站请求的时候 有两张请求方式,
一种是Http请求 一种是Https请求,
眨眼一看是不是觉得没什么区别 ,
仔细观察是不是觉得就多了一个字母s,
Http传输协议在当时是十分广泛的应用到各个网站,因为这是当时最好的传输协议 ,但是其传输内容是明文传输未经加密的 ,从而导致用户的个人信息泄露 。
在那个网络支付刚刚兴起的时代,很明显的这种传输协议是不安全。
后来,在2015年 ,Http传输协议在版本迭代中升级成为Https 。
既然有Http跟Https 两者之间肯定有具体的差异的
Http请求

Http超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

Https请求

HTTPS是身披SSL外壳的HTTP。 HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

在这里插入图片描述

Https与Http的关系

HTTP特点:

  1. 状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
  2. 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
  3. 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
  4. 简单快速、灵活
  5. 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性
    Http的缺点
    1、通信使用明文不加密,内容可能被窃听
    2、不验证通信方身份,可能遭到伪装
    3、无法验证报文完整性,可能被篡改
    Https特点:
    基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护
    1.内容加密:采用混合加密技术,中间者无法直接查看明文内容
    2.验证身份:通过证书认证客户端访问的是自己的服务器
    3.保护数据完整性:防止传输的内容被中间人冒充或者篡改

常见状态码

1xx(临时响应)
在这里插入图片描述

2xx (成功)
在这里插入图片描述

3xx (重定向)
在这里插入图片描述

4xx(请求错误)
在这里插入图片描述

5xx(服务器错误)
在这里插入图片描述

Get/Post

  • get: 缓存、请求长度受限、会被历史保存记录
    • 无副作用(不修改资源),幂等(请求次数与资源无关)的场景
  • post: 安全、大数据、更多编码类型
    具体差异
    1、get重点在从服务器上获取资源,post重点在向服务器发送数据;
    2、get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?“连接,多个请求数据间用”&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
    3、Get传输的数据量小,因为受URL长度限制,但效率较高;Post可以传输大量数据,所以上传文件时只能用Post方式
    4、get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;post较get安全性较高
    5、get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码;post支持标准字符集,可以正确传递中文字符。

Https 缓存机制

  1. 浏览器发送请求前,根据请求头的expires和cache-control判断是否命中(包括是否过期)强缓存策略,如果命中,直接从缓存获取资源,并不会发送请求。如果没有命中,则进入下一步。
  2. 没有命中强缓存规则,浏览器会发送请求,根据请求头的last-modified和etag判断是否命中协商缓存,如果命中,直接从缓存获取资源。如果没有命中,则进入下一步。
  3. 如果前两步都没有命中,则直接从服务端获取资源。