软件测试面试题型:
计算机网络: 七层网络模型:物理层-数据链路层-网络层-传输层-会话话层-表示层-应用层
1、输入 URL 到网页显示出来的全过程?
1、URL输入到网址中,客户端DNS解析IP地址,通过IP地址找到服务器路径
2、客户端发起HTTP会话到解析出来的地址,通过TCP封装数据包传输到网络层
3、在客户端的传输层,会将HTTP会画请求分成报文段,添加源与目的端口
4、然后是网络层,通过查询路由表查询如何到达服务器,期间可能经过多个路由器
5、客户端链路层,包通过链路层发送到路由器,通过IP查找 MAC地址,发送ARP请求查找目的地址,发送IP数据包到达服务器地址
2、HTTP 和 HTTPS 的区别?
1、HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
2、使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec
3、HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
4、http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。 5、HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
3、HTTP 的报文结构?
举例子:
GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/x-shockwave-flash, /
Referer: www.google.cn/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)
Host: www.google.cn
Connection: Keep-Alive
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g; NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r
请求行 请求头 空行 请求体
4、 cookie 和 session 机制的区别?
cookie 是发送到客户端并保存在客户端的,用于保持会话间持久的保持数据,过期取决于其生成时候的设定
session 保存在服务端,是保存访问者从开始到结束访问某个页面的这段时间,过期取决于服务器的设定 都是用来验证当前用户的唯一ID的
1、区别:cookie 数据存储在客户端,session存储在服务器端
2、cookie由于存储在客户端,安全性差,容易被盗取登陆
3、session存在服务端会,请求时候会长时间访问服务器端,导致资源占用
4、单个cookie在客户端限制有3K
5、所以可以将重要信息存储在session中,其他信息需要保留就存储在 cookie中
5、常见的状态码有哪些?
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
301 (永久移动) 请求的网页已永久移动到新位置。
400 (错误请求) 服务器不理解请求的语法。
404 (未找到) 服务器找不到请求的网页。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
6、TCP 和 UDP 的区别?
UDP:通信过程中不需要接受方的确认,相较于TCP的三次握手四次挥手是不可靠的传输,容易出现丢包现象。UDP主要应用于简单的查询-问答服务,如程序员的程序调试。交换的信息量小。
TCP是面向连接,用于可靠的字节流服务
UDP是面向无连接,不可靠的数据服务
7、TCP 为什么是三次握手和四次挥手?
“握手”即Client端与Service端创建数据连接的过程:
第一次握手:Clicent端向Service端发送SYN(请求同步标志)
第二次握手:Service端接受到了,给Client端发送ACK(确认号)+SYN(请求同步标志)
第三次握手:Clicent端接受到了,给Service端发送ACK(确认号)
如果只有2次握手:第一次握手期间可能会出现网络并发量大而在某节点阻塞,客户端会给服务端重新发送请求。导致客户端只有一个请求,service上有两个响应,夸张点可能活重新发起 N次请求,service创建响应等待,导致资源浪费
“挥手“即Client端与Service端创建数据断开链接过程:
第一次挥手:Clicent 发送Fin(结束标志)给Service
第二次挥手:service 接受到后进入FIN_WAIT状态,将数据全步传输给Clicen后。发送FIN(结束标志)给Clicent
第三次挥手:Clicent 发出ACK(确认号)给Service端确定不是网络问题。后进入Time_Wait状态
第四次握手:service接受后断开,不再发请求。Clicent确定Service无请求后断开
因为客户端和服务端都有向对方发送请求的能力,四次挥手确保我断开之前你这边已经没有请求了而创建的平等对话
9.TCP为什么最后挥手后会有time_wait?
第四次挥手,客户端的time_Wait 状态是为了确保服务端已经断开且没有请求在传输中。避免服务端的请求未得到响应
8、简要说明 HTTP 请求中的 Post 和 Get 有哪些区别的地方?
1、作用不一样:get 为从服务器上获取数据,post向服务器传输数据
2、传输的数据量不一样:Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。