(十)网络协议

1、http的状态码与常用方法

分类 1XX: 收到请求,需要请求者继续执⾏操作,⽐较少⽤

  2XX: 请求成功,常⽤的 200

  3XX: 重定向,浏览器在拿到服务器返回的这个状态码后会⾃动跳转到⼀个新的URL地址,这个地址可以从 响应的Location⾸部中获取;

    好处:⽹站改版、域名迁移等,多个域名指向同个主站导流 必须记住: 301:永久性跳转,⽐如域名过期,换个域名 302:临时性跳转

  4XX: 客服端出错,请求包含语法错误或者⽆法完成请求 必须记住:

    400: 请求出错,⽐如语法协议 403: 没权限访问 404: 找不到这个路径对应的接⼝或者⽂件 405: 不允许此⽅法进⾏提交,Method not allowed,⽐如接⼝⼀定要POST⽅式,⽽你是⽤了GET

  5XX: 服务端出错,服务器在处理请求的过程中发⽣了错误 必须记住:

    500: 服务器内部报错了,完成不了这次请求 503: 服务器宕机

http1.0定义了三种:

  GET: 向服务器获取资源,⽐如查询请求;

  POST: 向服务器提交数据,比如登录提交请求;

  Head: 和get类似,返回的响应中没有具体的内容,⽤于获取报头;

http1.1定义了六种:

  PUT:⼀般是⽤于更新请求,全量更新;

  PATCH:PUT⽅法的补充,部分更新;

  DELETE:⽤于删除指定的资源;

  OPTIONS: 获取服务器⽀持的HTTP请求⽅法,服务器性能、跨域检查等;

  CONNECT: 作为跳板,让服务器代替⽤户去访问其它⽹⻚页,返回给⽤户,网页开发较少用到;

  TRACE:回显服务器收到的请求,主要⽤于测试或诊断;

2、cookie与session

http协议无状态,无法识别发起者;通过cookie与session来识别,服务端取cookie中值来生成或修改session;采⽤redis替代session;

区别:cookie数据保存在客户端,session数据保存在服务端;cookie不是很安全,易泄露,需密⽂存储;Cookie⼤⼩和数量存储有限制,4K/4000字节左右;

 

localstorage:h5的,写到本地文件,重启浏览器依然在;

sessionStorage:重启浏览器就会丢失;

indexDB/webSql有些浏览器没有,所以一般不用;

3、JWT(JSON Web token,替代session)做登录解决方案

JWT:使用公钥密钥 以JSON形式进行通信的⽅法;

JWT格式组成 头部、负载、签名;header(描述加密算法)+payload(要加密的数据对象)+signature(对前两部分进行加密,生成token);一般存在cookie/localstorage/sessionStorage中;

  好处:服务端解密token后,可直接使用token中的基本信息,不需要再次查库;token存在客户端,不占服务器资源;

  坏处:token需要base64编码,所以必须避免敏感信息;服务端若不存,则有效期内一直有效,无法做失效处理;

4、浏览器输⼊url到看到结果的流程

  1、解析url地址是否合法

  2、检查浏览器是否有缓存, 如果有直接显示

  3、在发送http请求前,需要域名解析(DNS解析),解析获取对应ip地址。

  4、浏览器向服务器发起tcp链接,完成tcp三次握⼿

  5、握⼿成功后,浏览器向服务器发送http请求

  6、服务器收到处理的请求,将数据返回⾄浏览器

  7、浏览器收到http响应。

  8、浏览器解析响应。如果响应可以缓存,则存⼊缓存

  9、浏览器进⾏⻚页⾯渲染

5、同源与跨域

同源策略:浏览器行为,检查当前tab页要执行的js代码是否同源,即来自于同一个域名;是浏览器最基本最核心的安全策略;(协议/域名/端口 均相同)

跨域:浏览器从一个网页访问另一个非同源资源;

  解决跨域问题:Http响应头配置允许跨域,设置跨域名:response.setHeader("Access-Control-Allow-Origin", request.getHeader("origin"));还有设置跨域方法、跨域携带cookie;

 

6、tcp三次握手建连、tcp四次挥手断连 

 

连接同步请求syn/连接初始序号seq/ack确认/fin关闭请求

三次:防止延迟的syn请求生效;前两次不能带数据防攻击;  四次:确认两边都传完数据;  2倍等待时间:确认最后一个ack成功;

 

7、TCP与UDP区别

基于连接与无连接;

对系统资源的要求(TCP较多,UDP少);

UDP程序结构较简单;

流模式与数据报模式 ;

TCP保证数据正确性,UDP可能丢包;

TCP保证数据顺序,UDP不保证。

 

8、http与https区别

  • HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  • HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

posted on 2021-05-08 10:25  奇天异下  阅读(82)  评论(0编辑  收藏  举报

导航