关于找工作面试
第一次写个人记录,简单介绍一下找工作以及面试.:
①技术面----基础;
②技术面----算法、数据结构;
③技术面----项目;
④Hr面----综合;
基础知识部分
基础知识部分是最重要的,看了好多面经,自己查答案,总结记录在此。希望能给同路小白们一个参考的地方。推荐一篇面经:《2018大厂高级前端面试题汇总》。由于是2018年的了,所以大家只需要关注一下总体方向和基础部分就可以了。
HTTP
1、介绍HTTP,优点和存在的问题?(必考)
HTTP优点有简单,灵活,易于扩展,应用广泛,环境成熟,无状态; HTTP缺点有明文不安全,因为无状态,因此无法做连续多个步骤的操作,“请求 - 应答”模式则加剧了HTTP的性能问题。
2、HTTP报文的请求和返回会有几个部分?每部分具体都有什么?
(1)请求报文(请求行/请求头/请求数据/空行)
①请求行
请求方法字段、URL字段和HTTP协议版本
例如:GET /index.html HTTP/1.1
get方法将数据拼接在url后面,传递参数受限
请求方法:
GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
② 请求头(key value形式)
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:主机地址
③请求数据
post方法中,会把数据以key value形式发送请求
④空行
发送回车符和换行符,通知服务器以下不再有请求头
(2)响应报文(状态行、消息报头、响应正文)
状态行
消息报头
响应正文
3、GET与POST请求方式的区别有哪些?
(1)GET和POST是HTTP请求的两种基本方法,GET产生一个TCP数据包,POST产生两个 TCP数据包。
(2)GET在浏览器回退时是无害的,而POST会再次提交请求。
(3)GET产生的URL地址可以被Bookmark,而POST不可以。
(4)GET请求会被浏览器主动cache,而POST不会,除非手动设置。
(5)GET请求只能进行url编码,而POST支持多种编码方式。
(6)GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
(7)GET请求在URL中传送的参数是有长度限制的,而POST没有。
(8)对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
(9)GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
(10)GET参数通过URL传递,POST放在Request body中。
4、输入url到页面加载全过程(必考)
(1)浏览器的地址栏输入URL并按下回车。
(2)浏览器查找当前URL是否存在缓存,并比较缓存是否过期。
(3)DNS解析URL对应的IP。
(4)根据IP建立TCP连接(三次握手)。
(5)HTTP发起请求。
(6)服务器处理请求,浏览器接收HTTP响应。
(7)渲染页面,构建DOM树。
(8)关闭TCP连接(四次挥手)。
5、介绍HTTPS;HTTP和HTTPS的区别(必考)
HTTP与HTTPS介绍:
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTP和HTTPS的区别:
1)https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4)http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。