浏览器 - http协议面试题
http协议面试题
游览器输入一个地址。到页面展示中间经历了哪些东西?
这个问题前端面试基本上百分百问的。测试的话,基础的功能面试可能不会问。自动化的话基本上也会问的。
1、游览器输入url。先解析url地址是否合法
2、游览器检查是否有缓存(游览器缓存-系统缓存-路由器缓存)。如果有,直接显示。如果没有,跳到第三步。
3、在发送http请求前,需要域名解析(DNS解析),解析获取对应过的ip地址。
4、游览器向服务器发起tcp链接,与游览器建立tcp三次握手
5、握手成功后,游览器向服务器发送http请求,请求数据包
6、服务器收到处理的请求,将数据返回至游览器
7、游览器收到http响应。
8、游览器解析响应。如果响应可以缓存,则存入缓存
9、游览器发送请求获取嵌入在HTML中的资源(html,css,JavaScript,图片,音乐等),对于未知类型,会弹出对话框
10、游览器发送异步请求
11、页面全部渲染结束。
GET和POST的区别:
这个问题。我相信只要你说你做过接口测试,基本上都被问到过。
简单来说:GET产生一个TCP数据包,POST产生两个TCP数据包
严格的说:对于GET方式的请求,游览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST请求。游览器先发送header,服务器响应100 continue,游览器再发送data,服务器响应200 ok(返回数据)
注:千万别说什么POST比GET安全什么的。这样一下子面试官就知道你的底子了。
cookies机制和session机制的区别:
1、cookies数据保存在客户端。session数据保存在服务端
2、cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗
3、session安全一点,但是占用服务器资源。
HTTP、状态码:
200:成功
302:重定向
404:请求失败,请求希望得到的资源违背在服务器发现。(只要不是新手写的demo,一般404都是你路径写错了,或者未区分大小写啥的)
502:无效的响应(基本上就是Tomcat没启好)
400:请求没有进入到后台服务里(一般都是前端的锅)
http协议请求方式:
----这个懒得写。基本上用到的就是GET和POST,充其量再遇到个option请求。(事实上小公司绝大部分全是POST请求)
http和https的区别:
与问题2一样,这个只要你说你接触过接口,基本上就会问的。
HTTPS = HTTP + SSL
1、https有ca证书,http一般没有
2、http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议
3、http默认80端口,https默认443端口。