Web开发

首页 » 常识 » 诊断 » 武汉茑萝测试开发面试题汇总
TUhjnbcbe - 2023/3/12 9:40:00
北京中科白殿疯在哪里 https://yyk.99.com.cn/fengtai/68389/lianxi.html

cookie和session

二者都是web端的会话跟踪技术,Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。这些信息并不是存放在HTTP响应体(ResponseBody)中的,而是存放于HTTP响应头;有了Cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。Cookie中通过getMaxAge()方法与setMaxAge(intmaxAge)方法来读写maxAge属性。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效;

Session技术则是服务端的解决方案,它是通过服务器来保持状态的。服务器会为Session生成唯一的Sessionid,而这个Sessionid在随后的请求中会被用来重新获得已经创建的Session;客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。由于会有越来越多的用户访问服务器,因此Session也会越来越多。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

请简述TCP和UDP的区别

TCP和UDP都是OSI模型中运输层中的协议,

TCP—传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。

UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。

TCP是面向连接的,UDP是面向无连接的UDP程序结构较简单TCP是面向字节流的,UDP是基于数据报的TCP保证数据正确性,UDP可能丢包TCP保证数据顺序,UDP不保证

为什么TCP可靠而UDP不可靠

通过TCP连接传输的数据无差错,不丢失,不重复,且按顺序到达。

TCP报文头里面的序号能使TCP的数据按序到达

报文头里面的确认序号能保证不丢包,累计确认及超时重传机制

TCP拥有流量控制及拥塞控制的机制

请简单说一下你了解的端口及对应的服务

21端口:21端口主要用于FTP(FileTransferProtocol,文件传输协议)服务。

25端口:25端口为SMTP(SimpleMailTransferProtocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。

53端口:53端口为DNS(DomainNameServer,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。

80端口:80端口是为HTTP(HyperTextTransportProtocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(WorldWideWeb,万维网)服务上传输信息的协议。

TCP三次握手

三次握手指的是:建立一个TCP连接时,需要客户端和服务器总共发送三个包。

三次握手的目的是:连接服务器的指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小。

第一次握手:建立连接,客户端向服务器发送请求报文段,将SYN置为1,客户端进入SYN_SEND状态,等待服务器确认第二次握手:服务器接收到客户端的SYN报文段,对这个SYN报文段进行确认;同时自己发送SYN请求信息,将SYN置为1;服务器将上述所有信息放入报文段(SYN+ACK)一起发送给客户端,此时服务器进入SYN_RECV状态客户端接收到SYN+ACK报文段,向服务器发送ACK报文段,发送完毕后客户端和服务器都进入ESTABLISHED状态,完成三次握手

TCP四次挥手

第一次挥手:客户端数据传输完毕需要断开连接,发送报文段并停止再次发送数据,主动关闭TCP连接,进入FIN-WAIT-1状态

第二次挥手:服务器接收到客户端发送的报文段后,进入关闭等待状态,客户端到服务器的连接释放,客户端收到服务器的确认后,进入FIN-WAIT-2状态,等待服务器发出连接释放的报文段

服务器的数据传输完毕后,向客户端发送连接释放报文段,服务器进入最后确认状态,等待客户端的确认

客户端收到服务器的连接释放报文段后,发出确认报文段,进入等待状态,经过等待时间后进入关闭状态,四次握手结束

从输入网址到显示网页的全过程

输入网址DNS域名解析,将url解析为ip地址客户端与服务器建立TCP连接客户端向服务器发送HTTP请求服务器处理客户端发来的请求服务器响应请求,返回给浏览器一个响应浏览器解析响应,展示HTML

输入url没有访问到网页的原因

DNS域名解析出问题

网络断了

服务器拒绝访问

请求或者响应在网络传输中途被劫走了

IP地址分为哪几类?简单说一下各个分类

OSI七层模型

TCP/IP四层模型

HTTP协议包括哪些请求

GET:对服务器资源的简单请求POST:发送包含用户提交数据的请求HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头PUT:用来传输文件,要求在请求报文的主体中包含文件内容,然后保存到请求的URI指定位置DELETE:与PUT相反,用来删除文件,按照请求删除指定的资源TRACE:让服务器将之前的请求通信环返回给客户端CONNECT:与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信

HTTP响应状态码

:从客户端发来的请求在服务器端被正常处理了

:服务器接收的请求已被成功处理,但在返回的响应报文中不包含实体的主体成分

:客户端向服务器成功请求指定范围的实体内容

:请求的资源已经被永久的移动到新的URI,以后新的请求应该使用新的URI代替

:资源临时移动,客户端应继续使用原有的URI

:请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源

:客户端发送附带条件的请求时,服务器允许访问资源,但是并没有返回任何实体

:客户端请求的语法错误,服务器无法理解

:请求需要有通过HTTP认证的认证信息

:请求资源的房屋内被服务器拒绝了

:服务器上无法找到请求的资源

:服务器内部错误,无法完成请求

:服务器暂时处于超负载或正在进行停机维护,现在无法处理请求

线程和进程区别

进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

每个进程都有独立的代码和数据空间,程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,线程之间切换的开销小。

进程之间的资源是独立的,线程共享本进程的资源

多线程与多进程

多进程:在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,多任务之间不会相互影响

多线程:在一个程序中,有很多的操作是非常耗时的,如数据库读写操作,IO操作等,如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作。使用多线程,可以在将耗时任务放在后台继续执行的同时,同时执行其他操作。多线程是异步的,但这不代表多线程真的是几个线程是在同时进行,实际上是系统不断地在各个线程之间来回的切换。

1
查看完整版本: 武汉茑萝测试开发面试题汇总