学习笔记1-计算机网络

163 阅读5分钟

软件测试面试题型:

计算机网络: 七层网络模型:物理层-数据链路层-网络层-传输层-会话话层-表示层-应用层

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传送的数据量较大,一般被默认为不受限制。