js面试问题理解

前端的面试是永无止尽的,只要想出题什么都可以出,但是他们考的点都不会变,外面只需要掌握里面的重点就行。

1,发送url 到页面加载发生了什么

就可以分成几个方面

  1. 过程:
    1,DNS解析 (解析域名,解析出对应的IP地址)
    2, TCP连接 (三次握手在tcp连接中)
    3, 发送http请求
    4, 处理请求返回数据
    5, 渲染页面
    6, 连接结束

还有就是理解三次握手四次回手

  1. 三次握手(建立连接之前)
    1,第一次握手:客户端向服务端发送连接请求报文段;
    2,第二次握手:服务端收到连接请求报文段后,若同意连接,就发送应答;
    3,第三次握手:客户端收到连接同意应答后,向服务端发送确认报文段,表示收到
  2. 四次挥手 (断开连接之前)
    1,第一次挥手:若客户端认为数据发送完成,则它需要向服务器端发送连接释放请求
    2,第二次挥手:服务器端收到连接释放请求后,会通知相应的应用程序,告诉它客户端向服务器端这个方向的连接已经释放
    3,第三次挥手:当服务器端向客户端发完所有数据后,向客户端发送连接释放请求
    4, 第四次挥手:客户端收到释放请求后,向服务器端发送确认应答

Http和Https的区别

端口不同:Http与Https使用不同的连接方式,端口也不同;
资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;
开销:Https通信需要证书;

get与post请求的区别

Get 请求能缓存,Post 不能。
Post 相对 Get 安全一点点,因为Get 请求都包含在 URL 里,
get会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的。
Post 可以通过 request body来传输比 Get 更多的数据,
Get 没有这个技术URL有长度限制,会影响 Get 请求,但是这个长度限制是浏览器规定的,不是 RFC 规定的Post 支持更多的编码类型且不对数据类型限制