3.协议二

协议(二)

HTTP协议

概念

HTTP:超文本传输协议,属于应用层协议,是Web通信的基础

URL

URL: 统一资源定位符

组成:

1. http://(协议)1. www.baidu.com(主机, 也可以是IP地址)1. :80(端口)1. /path(资源路径)1. ?k=v&k=v(查询参数)1. #hash(锚点)
请求响应模型

浏览器访问页面,或者点击页面上的按钮,会发送请求到服务器,服务器根据请求参数返回响应给浏览器,这就是请求响应模型。

HTTP工作过程(从浏览器输入URL点击回车,到浏览器显示内容,中间发生了什么?)
  1. 浏览器输入URL,点击回车

  2. 域名解析(DNS解析):将域名转化为IP地址

    1. 先去查找浏览器DNS缓存
    2. 查找本地计算机的hosts映射记录
    3. 查看DNS服务器获取
  3. 建立TCP连接(三次握手)

  4. 浏览器发送HTTP请求给服务器,服务器根据请求参数进行逻辑处理,然后返回结果给浏览器

  5. 根据实际情况断开或者维持TCP连接(connection:keep-alive)

  6. 浏览器根据响应内容,渲染页面

  7. ajax异步请求,根据结果局部刷新页面

HTTP报文
  1. 请求报文

    1. 请求行(请求方式 URL 协议版本 回车换行)

    2. 请求头(字段名:字段值 回车换行)

    3. 空行

    4. 请求正文

      HTTP请求报文

  2. 响应报文

    1. 响应行(协议版本 响应码 响应码的描述 回车换行)
    2. 响应头(字段名:字段值 回车换行)
    3. 空行
    4. 响应正文

    HTTP响应报文

HTTP特点
  1. 客户端/服务器模式(请求响应模式)
  2. 简单快速:请求只需要请求方式和请求URL,结构简单,响应快速
  3. 灵活:支持多种数据格式,只要声明Content-Type值
  4. 无连接:每次连接只处理一个请求,服务器收到客户端的应答之后,就会断开连接
  5. 无状态:每次请求服务器都会把它当作一个独立请求,不会记录之前的连接信息
  6. 明文传输:HTTP不支持数据加密,会带来安全问题
有状态的HTTP(HTTP状态保持)
  1. cookie:在客户端保存用户信息

    客户端携带登录信息发送请求到服务器,服务器验证通过之后生成用户cookie返回给客户端,客户端将cookie存储下来,在之后的请求中携带cookie数据,达到身份验证的目的。

    缺点:

     1. 存储在浏览器本地的cookie可能泄露用户信息 2. cookie数据过多会影响网络传输效率
    
  2. session:在服务端保存用户信息

    客户端携带登录信息发送请求到服务器,服务器验证通过之后在服务端生成用户的session,然后将sessionid返回给客户端,客户端将sessionid存储下来,在之后的请求中携带sessionid,服务端通过服务器存储的session信息验证用户身份。

    缺点:

     1. 用户登录信息过多时,会影响服务器性能 2. 后台服务多个实例运行的情况下,需要考虑共享session的问题
    
  3. token:令牌

    客户端携带登录信息发送请求到服务器,服务器验证通过之后会生成一个token字符串,然后将token字符串返回给客户端,客户端将token存储下来,在之后的请求中携带token,服务端可以验证token是否可用,如果token可用,就返回正常响应结果。

HTTP操作方式
  1. GET:获取指定资源的数据
  2. POST: 向指定的资源提交数据,数据放在请求正文中
  3. PUT:提交数据到指定资源取代之前的数据
  4. DELETE:申请删除指定资源的数据
  5. HEAD:等同于GET,但是只获取响应头,不获取响应正文
  6. OPTIONS:允许客户端查看服务器性能
  7. TRACE:回显服务器收到的请求,用作测试
POST提交数据方式(编码方式)
  1. application/x-www-form-urlencoded:post默认提交方式
  2. multipart/form-data:键值对的数据类型
  3. application/json:json数据
  4. text/xml:xml数据
GET与POST的区别
  1. GET请求数据,POST提交数据
  2. GET数据放在URL中,POST数据放在请求正文中
  3. GET数据只支持URL编码,POST数据支持多种编码方式
  4. GET请求数据受URL长度限制,POST数据没有限制
  5. GET请求数据在URL中显示,并不安全;POST数据相对安全
  6. GET请求数据会被浏览器缓存,但是POST请求数据不会
HTTP响应码
  1. 1xx:信息响应

  2. 2xx:成功响应

    1. 200:请求成功
    2. 201:请求成功,并且创建了资源
  3. 3xx:重定向响应

    1. 301:请求的URL地址永久发生了改变
    2. 302:请求的URL地址暂时发生了改变
    3. 304:请求的资源响应保持不变,可以使用缓存
  4. 4xx:客户端错误

    1. 400:请求的语法,参数错误,服务器不处理
    2. 401:用户未认证
    3. 403:没有访问权限
    4. 404:找不到资源
    5. 405:请求方式错误
  5. 5xx:服务端错误

    1. 500:服务器不知道如何处理

    2. 502:服务器作为网关,接收到错误响应

    3. 503:服务器还没有准备好

    4. 504:服务器作为网关,没有接收到下游服务器的响应,网关超时

      HTTPS协议

HTTP + SSL/TLS,位于应用层和传输层之间

目的是解决HTTP通信安全问题,为通信提供保密性和数据完整性

HTTP:80,HTTPS:443

HTTPS工作过程

image-20220425114942642

  1. 客户端发送HTTPS请求

  2. 服务器将公钥和证书发送给客户端

  3. 客户端验证证书,验证未通过,浏览器会显示“不安全的连接”提示;验证通过,客户端会产生一个随机数,然后通过公钥将随机数加密之后,发送给服务器

  4. 服务器通过私钥将密文解密,获得随机数;之后将随机数作为私钥进行数据加密

  5. 客户端获得密文之后,通过随机数进行解密

  6. 客户端发送HTTPS请求

  7. 服务器将公钥和证书发送给客户端

  8. 客户端验证证书,验证未通过,浏览器会显示“不安全的连接”提示;验证通过,客户端会产生一个随机数,然后通过公钥将随机数加密之后,发送给服务器

  9. 服务器通过私钥将密文解密,获得随机数;之后将随机数作为私钥进行数据加密

  10. 客户端获得密文之后,通过随机数进行解密

  11. 安全连接建立

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值