互联网测试开发面试题集锦(中)网络篇

网络篇

访问一个完整http请求会经历哪些问题

  1. 域名解析

  2. 发起TCP的3次握手

  3. 建立TCP连接后发起http请求

  4. 服务器端响应http请求,浏览器得到html代码

  5. 浏览器解析html代码,并请求html代码中的资源

  6. 浏览器对页面进行渲染呈现给用户。

具体每一步骤可以参考https://www.cnblogs.com/YeChing/p/6337378.html

https和http请求的区别

  • https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议

按加密来说涉及到了非对称加密以及证书CA的处理,具体可以自行搜索了解下
https://www.cnblogs.com/wqhwe/p/5407468.html

tcp/ip五层协议有什么,每层的作用

https://mp.weixin.qq.com/s/nwk_3uJd_edRD1h9YxPvzA
可能会问你,http协议位于第几层,还有就是tcp协议位于第几层。
http在应用层,负责数据的包装,tcp位于传输层负责数据传输
顺便可以看看OSI七层协议
http://www.ha97.com/3215.html

http有哪些请求方式,get和post请求有什么区别

  • get重点在从服务器上获取资源,post重点在向服务器发送数据;

  • get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;

  • Get传输的数据量小,因为受URL长度限制,但效率较高,Post可以传输大量数据,所以上传文件时只能用Post方式;

  • post较get安全性较高,get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等.

  • get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码,post支持标准字符集,可以正确传递中文字符。

http请求和http响应包含哪些内容

请求报文包含三部分:
a、请求行:包含请求方法、URI、HTTP版本信息

b、请求首部字段

c、请求内容实体
响应报文包含三部分:

a、状态行:包含HTTP版本、状态码、状态码的原因短语

b、响应首部字段

c、响应内容实体

TCP的三次握手过程、四次挥手过程

http://blog.csdn.net/omnispace/article/details/52701752

还有就是问为什么是三次握手,四次挥手

Socket编程了解么,应用在哪些地方

可以把 WebSocket 看成是 HTTP 协议为了支持长连接所打的一个大补丁。WebSocket是HTML5下一种新的协议。它实现了浏览器与服务器全双工通信。最大不同是:
WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;
WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信
一个使用WebSocket应用于视频的业务思路如下:
使用心跳维护websocket链路,探测客户端端的网红/主播是否在线
设置负载均衡7层的proxy_read_timeout默认为60s
设置心跳为50s,即可长期保持Websocket不断开

http请求的状态码一般有哪些?3开头的一般是指什么

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

如果一个网址无法访问,怎么排查什么原因

ping www.xx.com
或者浏览器访问一般都会有返回结果502等

如果有正在看直播的用户,反馈太卡,有可能什么原因,怎么定位问题

如果有正在看直播的用户,反馈太卡,有可能什么原因,怎么定位问题

自己网速慢,测速;或者内存不足,查看本机内存情况;网页缓存过多,清空;电脑中毒了;浏览器版本过低。

WSGI和FastCGI的区别

https://www.biaodianfu.com/cgi-fastcgi-wsgi.html

抓包工具的使用

如charles设置代理抓app的包等,压力测试,模拟弱网情况等,重定向,更改请求。

http://blog.csdn.net/zhangxiang_1102/article/details/77855548

cookie与session区别

cookie数据存放在客户的浏览器上,session数据放在服务器上;

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
Cookie和Session的方案虽然分别属于客户端和服务端,但是服务端的session的实现对客户端的cookie有依赖关系的,上面我讲到服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用

Tcp与udp区别

http://blog.csdn.net/li_ning_/article/details/52117463

TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接TCP提供可靠的服务。
TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
TCP首部开销20字节;UDP的首部开销小,只有8个字节
TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道(待续)

原文地址:https://www.cnblogs.com/tom-gao/p/8819994.html