js面试问题理解
前端的面试是永无止尽的,只要想出题什么都可以出,但是他们考的点都不会变,外面只需要掌握里面的重点就行。
1,发送url 到页面加载发生了什么
就可以分成几个方面
- 过程:
1,DNS解析 (解析域名,解析出对应的IP地址)
2, TCP连接 (三次握手在tcp连接中)
3, 发送http请求
4, 处理请求返回数据
5, 渲染页面
6, 连接结束
还有就是理解三次握手四次回手
- 三次握手(建立连接之前)
1,第一次握手:客户端向服务端发送连接请求报文段;
2,第二次握手:服务端收到连接请求报文段后,若同意连接,就发送应答;
3,第三次握手:客户端收到连接同意应答后,向服务端发送确认报文段,表示收到 - 四次挥手 (断开连接之前)
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 支持更多的编码类型且不对数据类型限制