在PC浏览器的地址栏输入一串URL,而后按Enter键这个页面渲染出来,这个过程当中都发生了什么事?这个是不少面试官喜欢问的一个问题
若是测试只是停留在表面上点点点,不知道背后的逻辑,是没法发现隐藏的bug,只能找一些页面上看获得的bug。
测试人员若是想在技术上有所提高,必然要都懂接口(API)测试,这也是近来年愈来愈多的公司意识到接口测试的重要性,招聘的时候要招一个中高级的测试人员,接口测试是必备技能了。javascript
1.在PC浏览器的地址栏输入一串URL,而后按Enter键这个页面渲染出来,这个过程当中都发生了什么事?css
一、首先,在浏览器地址栏中输入url,先解析url,检测url地址是否合法
二、浏览器先查看浏览器缓存-系统缓存-路由器缓存,若是缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操做。
浏览器缓存:浏览器会记录DNS一段时间,所以,只是第一个地方解析DNS请求;
操做系统缓存:若是在浏览器缓存中不包含这个记录,则会使系统调用操做系统,获取操做系统的记录(保存最近的DNS查询缓存);
路由器缓存:若是上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存;
ISP缓存:若上述均失败,继续向ISP搜索。
三、在发送http请求前,须要域名解析(DNS解析),解析获取相应的IP地址。
四、浏览器向服务器发起tcp链接,与浏览器创建tcp三次握手。
五、握手成功后,浏览器向服务器发送http请求,请求数据包。
六、服务器处理收到的请求,将数据返回至浏览器
七、浏览器收到HTTP响应
八、浏览器解码响应,若是响应能够缓存,则存入缓存。
九、 浏览器发送请求获取嵌入在HTML中的资源(html,css,javascript,图片,音乐······),对于未知类型,会弹出对话框。
十、 浏览器发送异步请求。
十一、页面所有渲染结束。html
2.get和post请求区别,这个是被问烂的题了java
首先这个题看似简单,其实是个送命题!若是你百度搜到的标准答案多是这样的(本标准答案参考自w3schools):面试
若是我告诉你,你死记硬背的这些所谓“标准答案”不是面试官想要的,你确定不服,首先从安全性讲,get和post都同样,没啥所谓的哪一个更安全
get请求参数在url地址上,直接暴露,post请求的参数放body部分,按F12也直接暴露了,因此没啥安全性可言json
“GET参数经过URL传递,POST放在Request body中”这个其实也不许,post请求也能够没body,也能够在url传递呢?浏览器
若是我告诉你get请求和post请求本质上没区别,你确定不信!
GET和POST有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包。
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。缓存
详情能够参考这篇,写的挺好的《GET和POST两种基本请求方法的区别 》安全
3.cookies机制和session机制的区别,这个也是常常会问的服务器
4.HTTP状态码2xx,3xx,4xx,5xx分别是什么意思?这个是最基本的了,这个得熟练掌握,若是这个状态码都分不清,基本功就很弱了,印象分会大打折扣!
307 (临时重定向) 服务器目前从不一样位置的网页响应请求,但请求者应继续使用原有位置来进行之后的请求。
503 因为临时的服务器维护或者过载,服务器当前没法处理请求。这个情况是临时的,而且将在一段时间之后恢复。
5.http协议有哪几种请求方式?
GET, POST 和 HEAD方、OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
6.http和https区别?
HTTP协议传输的数据都是未加密的,也就是明文的,所以使用HTTP协议传输隐私信息很是不安全,为了保证这些隐私数据能加密传输,因而网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来讲,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要以下:
总的来讲: HTTPS=SSL+HTTP
一、https协议须要到ca申请证书,通常免费证书较少,于是须要必定费用。
二、http是超文本传输协议,信息是明文传输,https则是具备安全性的ssl加密传输协议。
三、http和https使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。
(这个只是默认端口不同,实际上端口是能够改的)
四、http的链接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
7.HTTP请求报文与响应报文格式
请求报文包含三部分:
a、请求行:包含请求方法、URI、HTTP版本信息
b、请求头部(headers)字段
c、请求内容实体(body)
响应报文包含三部分:
a、状态行:包含HTTP版本、状态码、状态码的缘由短语
b、响应头部(headers)字段
c、响应内容(body)实体
8.常见的 POST 提交数据方式
application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
9.什么是DNS?
域名解析服务。将主机名转换为IP地址。如将http://www.cnblogs.com/主机名转换为IP地址:211.137.51.78
10.什么是Http协议无状态协议?怎么解决Http协议无状态协议?
(1)、无状态协议对于事务处理没有记忆能力。缺乏状态意味着若是后续处理须要前面的信息
(2)、无状态协议解决办法: 经过一、Cookie 二、经过Session会话保存。
交流QQ群:779429633