首页 > 其他分享 >02_测开八股文

02_测开八股文

时间:2023-05-29 11:35:03浏览次数:32  
标签:02 测开 八股文 请求 http 服务器 连接 服务端 客户端

1.linux的常用命令,十个以上

  • cd:切换目录,..(两个点)代表上级目录,~:home目录
  • head/tail -n  10 /etc/profile :查看/etc/profile 的前、后10行内容
  • pwd:查看当前路径
  • ls -al :列出当前目录中的所有目录和文件,包含隐藏文件
  • mkdir/rmdir:创建文件或目录/删除空目录
  • touch:创建空文件
  • cp:复制文件或目录
  • chmod:修改文件或目录的权限 ,其中rwx:r可读:4 ,w可写:2,x可执行:1,第一段的三位:代表拥有者权限,第二段的三位:拥有者所在组的组员的权限,第三段的三位:代表其他用户的权限。
  • find:在文件系统中查找文件
  • rm -rf 文件名:递归删除文件或目录,且不询问
  • cat:查看文件内容
  • tar -zcvf  压缩文件名:压缩文件
  • ps -ef:显示当前正在运行的进程
  • top:显示系统资源的使用情况
  • kill -9 pid:强制终止一个进程
  • netstat -anp:显示网络连接状态
  • ifconfig:显示网络接口配置信息,ip地址
  • ping IP:测试网络连接
  • df -h:显示磁盘空间
  • clear:清屏
  • su 用户名:切换用户名
  •  | :管道符,左侧的命令的结果查找右侧的字符
  • >> :将左侧的命令结果输出到右侧的文件中

2.HTTP的常见状态码

一般分为5大类:

  • 1xx:传递信息,服务器收到请求,需要请求者继续执行操作;
  • 2xx:请求被服务器成功接收并处理
    • 200:客户请求成功;
    • 201:请求成功并创建了新资源;
  • 3xx:重定向,需要客户端进一步操作来完成请求
    • 301:永久重定向,说明请求的资源被永久的移动到新的URL,返回信息会包括新的URL;
    • 302:临时重定向,资源只是临时移动,客户端应继续使用原有的URL;
    • 304:资源自上次请求后未发生变化;
  • 4xx:客户端出现错误,导致请求失败
    • 400:客户端请求的语法错误,服务器无法理解;
    • 401:当前请求需要用户身份验证;
    • 403:服务器已经理解请求,但是拒绝执行它;
    • 404:请求资源不存在,服务器无法根据客户端请求找到资源;
  • 5xx:服务器发生错误,服务器在处理请求的过程中发生了错误
    • 500:服务器内部错误,无法完成请求;
    • 501:服务器不支持该请求方法,无法完成请求;
    • 502:错误网关,从上游服务器收到无效响应;
    • 503:由于超载或者系统维护,服务器无法处理客户端的请求;

3.地址栏输入URL后发生了什么?

会经过DNS解析、TCP连接、HTTP请求、响应数据接收、页面渲染、TCP连接断开等过程。

主要经历:

1.URL解析:浏览器会将用户输入的URL解析为IP地址,首先查询本地HOST,看是否有对应的IP地址,没有就通过DNS服务器查询得到目标服务器的IP地址;

2.建立TCP连接:浏览器向服务器发送请求之前,需要先与服务器建立TCP连接,进行三次握手,确保双方都能够正常通信;

3.发送HTTP请求:浏览器向服务器发送HTTP请求,包括请求行、请求头和请求体等信息,接收响应数据,服务器接收到请求之后,回访响应数据,包括响应行(状态码)、响应头和响应体等信息。

3.渲染页面:当浏览器接收到响应数据后,或根据页面内容,CSS样式和js代码等渲染出可视化页面。

4.断开TCP连接:当浏览器完成页面渲染后,会断开与服务器的TCP连接,释放资源。

4.tcp三次握手,四次挥手的过程

三次握手:本质就是为了保证在不可靠的网络链路中,建立起可靠的连接。

①当客户端向服务端发起连接的时候,会先发syn包连接请求数据,进行询问,能否建立连接;

②如果服务端同意连接,则回复syn+ack包;

③客户端收到之后回复ack包,建立连接。

为什么不是两次握手?

服务端回复完syn+ack之后就建立连接,是为了防止因为已失效的请求报文突然又传到服务端引起错误。

假设采用两次握手建立连接:

  • 客户端向服务端发送了一个syn包,来请求建立连接,因为某些未知的原因并没有到达服务器,在中间某个网络节点产生了滞留,为了建立连接,客户端会重发syn包,这次的数据包正常送达,服务端回复syn+ack之后建立连接;

  • 第一包数据阻塞的网络节点突然恢复,第一包syn包又送达服务端,这时服务端会误认为是客户端又发起了一个新的连接,从而在两次握手之后,进入等待数据状态,服务端认为是两个连接,而客户端认为是一个而连接,造成状态不一致;

  • 如果在三次握手的情况下,服务端收不到最后的ack包,不会认为连接成功。

四次挥手:处于连接状态的客户端和服务端,都可以发起关闭连接请求,这就需要四次挥手来进行连接关闭。

①第一次挥手:假设客户端主动发起连接关闭请求,需要向服务端发起一包FIN包,表示要关闭连接,自己进入终止等待1 状态;

②第二次挥手:服务端收到FIN包之后,发送ACK包,表示自己进入了关闭等待状态,客户端进行终止等待2状态;

③第三次挥手:这时客户端还可以发送未发送的数据,客户端还可以接收数据,待客户端发送完数据之后,服务端发送FIN包,进入最后确认状态;

④第四次挥手:客户端收到之后回复ACK包,进入超时等待状态,经过超时时间后关闭连接,而服务端收到ACK包后,立即关闭连接。

 为什么客户端需要等待超时时间?

为了保证服务端已收到ACK包。保证在不可靠的网络链路中,进行可靠的连接断开确认。

  • 假设客户端发送完最后一包ack后就释放了连接,一旦ack包在网络中丢失,服务端将一直停留在最后确认状态;

  • 假设客户端发送完最后一包ack后,等待一段时间,这时服务端因为没有收到ack包,会重发fin包,客户端会响应这个fin包,重发ack包并刷新超时时间;

为什么要四次挥手?

  • 由于tcp的半关闭特性,任何一方都可以在数据传送结束后,发出连接关闭通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送时,则发出连接关闭的通知,对方确认后就完全关闭了tcp连接。

  • 两次挥手就可以释放一端到另一端的tcp连接,完全释放连接一共需要四次挥手。

5.HTTPS和HTTP的区别?

介绍 :

http:超文本传输协议,被用于web浏览器和网站服务器之间传递信息。

https:安全套接字层超文本传输协议。

主要作用:

①对数据加密,建立信息安全通道保证数据传输的安全。②对网站服务器进行真实身份认证。

两者主要区别:

 ①安全:http是明文传输,不提供任何方式的数据加密,不适合传输一些敏感信息。而https属于“加密传输协议”,在http和TCP之间添加了一个安全协议层(SSL/TLS),来对服务器的身份进行验证并为浏览器和服务器之间的通信加密。https比http更安全。

 ②加密与证书:http协议使用明文传输数据,不进行加密处理,不需要向服务端申请证书;https协议在TCP三次握手阶段之后,需要向认证机构(CA)申请证书,需要费用,协商加密使用的对称加密密钥,浏览器安装对应的证书。

 ③端口:http的端口是80,https的端口是443。

 ④http基于应用层,https基于传输层。

https实现原理:

①客服端使用https的url访问服务器端,请求与服务器建立连接;

②服务器端接收到客户端的请求后,将公钥证书返回给客户端;

③客户端验证公钥证书是否有效,无效显示警告信息,有效则客户端利用伪随机数生成会话密钥,再用服务器端传过来的公钥加密会话密钥,发送给服务器端;

④服务器端利用自己的私钥解密,得到会话密钥,再用会话密钥加密明文内容A发送给了客户端;

⑤客户端使用会话密钥解密发送过来的秘文。

⑥客户端再次发起https请求,使用会话密钥加密请求的内容B,然后服务端使用会话密钥解密。 这样都收到对称密钥以后SSL层连接建立成功。

http的结构:

一个http请求由请求行、请求头、空行、请求数据四部分组成

请求行:请求方法(get/post/head/delete/options/put/trace/connect),请求url,http协议版本号

请求头:user-agent、accept、content-type、host

 

标签:02,测开,八股文,请求,http,服务器,连接,服务端,客户端
From: https://www.cnblogs.com/liu-myu/p/17428408.html

相关文章

  • 2018ACM浙江省赛 ZOJ 4029 Now Loading!!!(二分)
    NowLoading!!!TimeLimit: 1Second     MemoryLimit: 131072KBDreamGridhas  integers .DreamGridalsohas foragivennumber ,where , .InputTherearemultipletestcases.Thefirstlineofinputisaninteger Thefirstlinecon......
  • 2022 AMC 10A Problems
    2022AMC10AProblemsProblem1Whatisthevalueof                                             Problem2Mikecycledlapsinminutes.Assumehecycledataconst......
  • 【2023-05-27】要当“人中人”
    20:00人只要还有一些输出的力量,生命至少不是徒劳的消耗吧。如果我什么都不做的话,会觉得这一生好像就是一场浩劫。                                                 ——......
  • 【2023-05-26】当务之重
    20:00我不相信没有种子植物也能发芽,我心中有对种子的信仰。让我相信你有一颗种子,我等待奇迹。                                                 ——梭罗在我的成长的......
  • MxDraw(在线CAD,H5开发CAD) 2023.05.23更新
    1. 完善了CAD在线编辑功能2. 增加addControlsEvent函数3. 修改Linux下,转换大图纸时,有部分照出当前视范围 ,就不显示问题4. 在CAD打开图纸增加多线程支持5. 修改片元程序编译加载失败问题6. 修改iconv 在centos7上不对问题7. 增加对对象的引用计数判断,防止对象被释放......
  • flask-app02
    移动端开发相关概念APP类型 NativeAPPNativeAPP又称原生APP,就是我们平时说的手机/桌面应用软件。原生APP是针对IOS、Android、Windows、鸿蒙等不同的手机操作系统要采用不同的语言和框架进行开发出来的,通常是由“服务器数据+APP应用客户端”两部份构成。实现技术:iOS......
  • 七牛云上传,网关超时502 Bad Gateway
    本地可以正常上传七牛云,服务器上网站正常访问,七牛云无法上传,报错502 BadGateway原因:域名解析节点出错。域名解析节点出现问题可能会导致网络请求无法正常访问到对应的服务器,因而会影响上传七牛云图片这类网络操作。例如,如果您的浏览器无法将域名正确解析为IP地址,那么就无法......
  • C++“高级程序设计实践(C++)”课程设计任务书[2023-05-28]
    C++“高级程序设计实践(C++)”课程设计任务书[2023-05-28]“高级程序设计实践(C++)”课程设计任务书一.课程设计的目的与任务本设计是课程——《面向对象编程(C++)》的一个关键实践环节。它是根据教学计划的要求,在教师的指导下,对学生实施程序设计训练的必要过程,是对前期课堂学习内......
  • 总结20230528
    代码时间(包括上课)2h代码量(行):50行博客数量(篇):1篇相关事项:1、今天直接凌晨五点才到宿舍,连夜整的无人机,为后天的比赛准备。2、今天上午上的计算机网络,由于比赛冲突,请假了没去上。3、今天下午的web上机也没去,正好赶上web报告也写完。4、晚上也是连夜通宵整的无人机。......
  • 2023.5.28「DROI」Round 2 解题报告
    「DROI」Round2期望得分T1:\(100\)pts,T2:\(30\)pts,T3:\(10\)pts,T4:\(0\)pts实际得分因为是IOI赛制,提交了就能看到分数,所以也是这个分数用时情况T1:\(20\)min,T2:\(2.5\)h,T3:\(40\)min,T4:\(0\)minT1这个题比较好想,对于成立的\(x\),设\(x=qy......