http与https相关知识小结

http与https知识点

get和post区别

  • get请求的参数放在URL中,而POST将数据放在报文体中,
  • get请求具有幂等性和安全性,而POST没有
  • get请求可以被浏览器缓存,而POST不行

    除了get和post方法还有什么方法

  • put 向指定位置上传最新资源
  • delete 请求删除某个资源
  • head 和GET方法差不多,但是不返回报文实体主体部分。
  • OPTIONS 查询指定的URL能够支持的方法 返回的是比如Allow: GET, POST, HEAD, OPTIONS

    http与https区别

状态码

2XX成功

  • 200 表示成功 服务器已经成功处理了请求
  • 201 请求成功并且服务器创建了新的资源
  • 202 服务器已接受请求,但未处理

3XX重定向

  • 301 永久移动,表示请求的资源已经永久移动到了其他位置
  • 302 临时移动
  • 303 和302有着相同的功能,但是303明确要求客户端应该采用 GET 方法获取资源。
  • 304 未修改,从上次请求以后,请求的网页未更改,服务器返回此响应时并不会返回页面内容

    4XX客户端错误

  • 400 请求报文中有语法错误
  • 401 该状态码表示发送的请求需要有认证信息
  • 402
  • 403 Forbidden 请求被拒绝
  • 404 Not Found 服务器找不到请求的网页

5XX服务器错误

  • 500 服务器错误,无法处理请求
  • 501
  • 502 服务器作为网关或者代理,从上游服务器收到无效响应
  • 503 服务不可用
  • 504 网关超时

请求报文与响应报文

请求报文

  • 请求报文包括 请求行,请求头,空行,请求数据
  • 请求头:请求方式(get/post)+路径+http版本
  • 请求行:关键字 (键值对组成)比如 Connection: keep-alive
  • 请求数据:body

    响应报文

  • 状态码
  • http头部
  • 空行
  • 主体 包含响应内容比如http代码
    ### http存在的缺点
  • 被监听
    数据明文传输,如果在中间某一点数据被劫持了,发送的数据就可能被获取,比如银行卡号和密码,
  • 被伪装
    通信时无法保证通信双方合法,比如和淘宝通信,你怎么知道返回数据的是不是淘宝,中间人可能伪装成淘宝
  • 被篡改
    中间篡改数据以后,接收方并不知道数据被篡改了

    https

  • https的出现,解决了这三个问题 被监听,被伪装,被篡改
  • 被监听的解决 数据加密
  • 被伪装 双方通过证书确认身份
  • 被篡改

    https过程

  • https并不是新协议,而是通过http+ssl构建的可进行加密传输,身份认证的协议
  • 由以前的http通过TCP握手,改变为先与ssl握手再与tcp握手

    输入URL,按下回车经历的过程

  1. DNS解析,获得域名对应的IP地址
  • 查询浏览器自身缓存
  • 查询系统缓存
  • 查询路由器缓存
  • 域名服务器缓存
  • 顶级域名服务器缓存
  1. 找到了ip地址,TCP建立连接
  2. 发送HTTP请求
  3. 服务器通过路径及参数生成HTML页面代码返回给浏览器
  4. 浏览器拿到html页面代码开始解析和渲染页面

Cookie和Session区别