百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

全网最全,高频网络基础面试题目,你get到了吗?

nanshan 2024-10-21 06:03 9 浏览 0 评论

Cookie和Session的区别????


Cookie 是访问某些网站以后在本地存储的一些网站相关的信息,下次再访问的时候减少一些步骤。另外一个更准确的说法是:Cookie 是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案。由于 HTTP 协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是 Session。


Cookie和Session是解决http协议的无状态性,区别如下:


1.存储位置不同


Cookie是将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器;Session是用于控制客户端和服务端的连接,Session存储在服务器;



2.存储容量不同


单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;



3.存取方式不同


Cookie只能用ASCII字符串,通过编码方式获取Unicode字符或者二进制数据,不好存储复杂的信息,而Session能存储任何类型的数据;



4.隐私策略/安全性不同


Cookie放在客户端,可以进行Cookie欺骗,所以不安全,Session放在服务端,更加安全;



5.有效期不同


Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,只需要关闭窗口Session就会失效,就算不依赖Cookie,用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出;



6.服务器压力不同


Cookie保存在本地,不存在服务端压力,Session保存在服务端,每个用户产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;


7.浏览器支持不同


如果浏览器禁用Cookie,那么Cookie直接失效,Session比较好点,可以用URL重写;


8.cookie和session应用的场景


cookie:用户的登录状态,记录用户的习惯,如购物车;

session:登录验证;




HTTP与HTTPS的区别???


HTTP协议传输的数据是未加密的,也就是明文,所以用HTTP协议传输隐私信息是非常不安全的。为了保证这些私有数据能够被加密传输,网景设计了SSL(SecureSocketsLayer)协议对HTTP协议传输的数据进行加密,由此诞生了HTTPS。简单来说,httpS协议是由SSL+HTTP协议构建的网络协议,可以用于加密传输和认证,比HTTP协议更安全。


HTTP和HTTPS都是应用层协议,本质上没有区别。他们的区别是,HTTPS是安全版的HTTP,HTTP信息是明文传输的,HTTPS是安全的SSL加密传输,比HTTP协议更安全。它们使用不同的端口。默认情况下,HTTP使用端口80,而HTTPS使用端口443。



HTTPS和HTTP的主要区别如下:一般来说:HTTPS=SSL+HTTP。

Https协议需要向ca申请证书,一般免费的证书很少,所以需要一定的费用。

Http是一种超文本传输协议,信息以明文形式传输,https是一种安全的ssl加密传输协议。

Http和https使用完全不同的连接方法和不同的端口。前者是80,而后者是443(这只是一个不同的默认端口,实际上可以更改)。

http连接非常简单且无状态;HttpS协议是由SSL+HTTP协议构建的网络协议,可用于加密传输和认证。它比HTTP协议更安全。




get请求与post请求的区别??



1.提交数据的形式


  • GET方法一般指从服务器获取数据,请求参数(查询字符串)后面直接跟URL,后面跟?分区URL和传输数据,参数之间用&(?1 = value1 & key2 = value2),可以直接放入浏览器的地址栏。例如,登录是使用GET方法。
    示例:log in . action name = itester & password = idonknow & verify = % E4 % BD % A0 % E5 % a5 % BD。如果数据是英文字母/数字,则按原样发送,如果是空格,则转换为+,如果是中文/其他字符,则直接用BASE64加密字符串,结果如下:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX是十六进制符号表示的ASCII。

    POST意味着客户端将表单数据提交给服务器,数据将放在请求数据字段中,用&分隔字段。请求行不包含数据参数,地址栏也没有其他参数。因此,POST是通过表单提交的,请求参数放在正文中。比如网页上新用户的注册、问卷、回答都采用POST的方式。






2.提交数据的大小/长度

  • Get是直接在浏览器地址栏中输入的,直接影响到URL的长度。但是,在HTTP协议规范中对URL的长度没有限制。对URL长度的限制受客户端或服务器不同支持的影响:比如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如网景、火狐等。,理论上没有长度限制,而且这个限制取决于操作系统的支持。由于浏览器的限制,整个URL的长度可以很长,但不能超过2049KB的大小限制,发文也没有大小限制。

  • post模式在HTTP协议规范中不受限制,但起限制作用的是服务器处理器的处理能力。因此,大小限制仍然受到每个web服务器的不同配置的影响。


3.提交数据的安全性

  • 由于get的参数直接拼接在浏览器地址栏的URL中,用户名和密码会以明文形式出现在URL上,暴露在互联网上,安全性差,无法用于传输敏感信息。
  • post请求参数放在正文中,通过表单数据提交。post比get更安全。
  • get方法的安全性较弱,原因如下:
  • 登录页面可能被浏览器缓存;
  • 其他人查看浏览器历史,然后其他人可以获得账号和密码;
  • 遇到跨站点攻击时,安全性能更差;


4.编码方式


  • get的参数只能支持ASCII;
  • post没有限制,也允许二进制数据;


5.请求方式


  • get是获取指定的资源;
  • post是向指定的资源提交要被处理的数据;



6.请求体


  • get没有请求体;
  • post有请求体;



7.效率方面


  • get产生一个tcp数据包;
  • post产生两个tcp数据包,post需要两步,时间上消耗要多一点,get比post更有效;



8.请求过程


  • 对于get方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据),get请求的过程:

1)浏览器请求tcp连接(第一次握手);

2)服务器答应进行tcp连接(第二次握手);

3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以 http会在此时进行第一次数据发送);

4)服务器返回200OK响应;


  • 而对于post,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200ok(返回数据),post请求的过程:

1)浏览器请求tcp连接(第一次握手);

2)服务器答应进行tcp连接(第二次握手);

3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以 http 会 在此时进行第一次数据发送);

4)服务器返回100 Continue响应;

5)浏览器发送数据;

6)服务器返回200 OK响应;


OSI七层模型的作用分别是??



1.应用层


OSI参考模型中最接近用户的层为计算机用户提供应用接口,也直接为用户提供各种网络服务。我们常用的应用层网络服务协议包括HTTP、HTTPS、FTP、POP3、SMTP等。



2.表示层


为应用层数据提供各种编码和转换功能,保证一个系统的应用层发送的数据能够被另一个系统的应用层识别。如果需要,该层可以提供一种标准表示,用于将计算机内部的各种数据格式转换为通信中使用的标准表示;



3.会话层


负责建立、管理和终止表示层实体之间的通信会话。这一层的通信由不同设备中应用程序之间的服务请求和响应组成;



4.传输层


主机之间建立了端到端的链路,传输层的作用是为上层协议提供端到端的可靠透明的数据传输服务,包括差错控制和流量控制。这一层将下层数据通信的细节与上层屏蔽开来,使得上层用户只能看到两个传输实体之间从主机到主机的可靠数据路径,可以由用户进行控制和设置。我们通常说TCP/ UDP就在这一层。这里的端口号是“end”;



5.网络层


通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层;



6.数据链路层


将比特组合成字节,然后将字节组合成帧,使用链路层地址(以太网使用MAC地址)访问介质,并进行错误检测。数据链路层分为两个子层:逻辑链路控制子层和媒体访问控制子层。媒体访问控制子层处理CSMA/光盘算法、数据错误检查、成帧等。LLC子层定义了一些字段,使最后一个协议能够共享数据链路层。实际上,LLC子层不是必需的;




7.物理层


实际信号的传输通过物理层实现,比特流通过物理介质传输。规定了液位、速度和电缆引脚。常用的设备包括(各种物理设备)集线器、中继器、调制解调器、网线、双绞线和同轴电缆,这些都是物理层的传输介质。



编辑 搜图



请简述TCP三次握手和四次挥手??



1.三次握手


三次握手指的是创建连接的过程:首先,客户端向服务器发送请求,询问是否可以发送数据;服务器收到请求后,如果同意,会回复确认消息;收到确认消息后,客户端开始发送数据。


第一次握手:建立连接时,客户端向服务器发送请求消息(SYN),“我要建立连接”;

第二次握手:收到请求消息后,如果服务器同意连接,则向客户端发送确认消息(SYN/ACK),“同意建立”;

三次握手:客户端收到服务器的确认后,再次向服务器发送确认消息,完成连接(ACK);



2.挥手四次

四次波指的是断开的过程:客户端向服务器发送请求,询问是否有可能断开;服务器将响应其当前状态;如果服务器准备好了,它将向客户端发送断开请求。如果还没有准备好,还有数据没有响应,它会等待响应完成后再向客户端发送请求;最后,服务器和客户端断开连接。


第一波:客户端想分手,给服务器发消息(FIN);

第二波:服务器通知客户端已经接受该波请求,并返回确认消息(ACK),但还没有准备好分手;

第三波:服务器准备分手通知客户端(FIN);

第四波:客户端向服务器发送消息(ACK)确认分手,服务器关闭连接。




浏览器输入URL到将页面渲染出来发生了什么??


1.首先在浏览器地址栏输入网址,先分析网址,检查网址是否合法;


2.浏览器首先检查浏览器缓存-系统缓存-路由器缓存,如果缓存中有,页面内容会直接显示在屏幕上。如果没有,请跳到步骤3。


浏览器缓存:浏览器会记录一段时间的DNS,所以只是第一个解析DNS请求的地方;操作系统缓存:如果这个记录没有包含在浏览器缓存中,系统会调用操作系统获取操作系统的记录(保存最新的DNS查询缓存);

路由器缓存:如果上述两个步骤都无法成功获取DNS记录,则继续搜索路由器缓存;

ISP缓存:如果以上都失败,继续搜索ISP。


3.在发送http请求之前,需要进行域名解析(DNS解析)来获取对应的IP地址。


4.浏览器发起与服务器的TCP连接,并与浏览器建立TCP三次握手。


5.握手成功后,浏览器向服务器发送一个HTTP请求,请求数据包。


6.服务器处理收到的请求,并将数据返回给浏览器。


7.浏览器接收到HTTP响应。


8.浏览器对响应进行解码,如果响应可以被缓存,则存储在缓存中。


9.浏览器发送请求以获取嵌入在HTML中的资源(HTML、CSS、JavaScript、图片、音乐...),对于未知类型会弹出一个对话框。


10.浏览器发送异步请求。


11.最后,渲染所有页面。



编辑 搜图



常用HTTP状态码?


关于常见的HTTP状态码,这是一个面试经常问的题目。

状态码

类别

1XX

信息性状态码

2XX

成功状态码

3XX

重定向状态码

4XX

客户端错误状态码

5XX

服务端错误状态码


常见的HTTP状态码:


1.1XX


  • 100 Continue:表示正常,客户端可以继续发送请求
  • 101 Switching Protocols:切换协议,服务器根据客户端的请求切换协议。



2.2XX


  • 200 OK:请求成功
  • 201 Created:已创建,表示成功请求并创建了新的资源
  • 202 Accepted:已接受,已接受请求,但未处理完成。
  • 204 No Content:无内容,服务器成功处理,但未返回内容。
  • 205 Reset Content:重置内容,服务器处理成功,客户端应重置文档视图。
  • 206 Partial Content:表示客户端进行了范围请求,响应报文应包含Content-Range指定范围的实体内容


3.3XX


  • 301 Moved Permanently:永久性重定向
  • 302 Found:临时重定向
  • 303 See Other:和301功能类似,但要求客户端采用get方法获取资源
  • 304 Not Modified:所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。
  • 305 Use Proxy:所请求的资源必须通过代理访问
  • 307 Temporary Redirect:临时重定向,与302类似,要求使用get请求重定向。



4.4XX


  • 400 Bad Request:客户端请求的语法错误,服务器无法理解。
  • 401 Unauthorized:表示发送的请求需要有认证信息。
  • 403 Forbidden:服务器理解用户的请求,但是拒绝执行该请求
  • 404 Not Found:服务器无法根据客户端的请求找到资源。
  • 405 Method Not Allowed:客户端请求中的方法被禁止
  • 406 Not Acceptable:服务器无法根据客户端请求的内容特性完成请求。
  • 408 Request Time-out:服务器等待客户端发送的请求时间过长,超时。



5.5XX


  • 500 Internal Server Error:服务器内部错误,无法完成请求
  • 501 Not Implemented:服务器不支持请求的功能,无法完成请求


如果已经建立了连接,但是客户端突然出现故障了怎么办??


如果TCP连接已经建立,并且客户端在通信过程中突然出现故障,那么服务器不会永远等待,过一会儿再关闭连接。具体原理是TCP有一个保活机制,主要用于服务器端检测已经建立TCP链路的客户端的状态,防止服务器端因为Linux系统中可以创建的TCP链路总数有限而一直维护TCP链路。

保活机制原理:设置TCP保活机制的保活时间,即在TCP链路超过这个时间时发送保活检测消息,不进行任何数据交互;将保活检测消息的发送时间间隔设置为保活间隔;;设置保持活动探测消息的总发送时间,保持计数。如果保持计数时间的保持活动探测消息没有收到客户端的响应,服务器将关闭与客户端的TCP链接。


TCP 和 UDP 区别及应用场景??


1.TCP和UDP区别


面向连接 vs 无连接

可靠性:TCP 可靠,丢包重传;UDP 不可靠。

有序性:TCP 利用序列号保证了数据的有序性(数据到达会排序)

速度:TCP 创建连接,速率较慢;UDP 较快

TCP 流模式,UDP 报文模式



2.TCP和UDP应用场景


TCP:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如 HTTP、HTTPS、FTP 等传输文件的协议,POP、SMTP 等邮件传输的协议。在日常生活中,常见使用 TCP 协议的应用如下:

  • 万维网(HTTP);
  • 邮件(POP、SMTP);
  • 文件传输(FTP);


UDP:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用 UDP。日常生活中常见使用 UDP 协议的应用如:语音,视频。

相关推荐

服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下

Raid5数据恢复算法原理:分布式奇偶校验的独立磁盘结构(被称之为raid5)的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”,通常使用的标识是xor。运算规则:若二者值...

服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复

服务器数据恢复环境&故障:由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windowsserver操作系统,没有配置ups。因为服务器异常断电重启后,rai...

服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例

服务器数据恢复环境:P740+AIX+Sybase+V7000存储,存储阵列柜上共12块SAS机械硬盘(其中一块为热备盘)。服务器故障:存储阵列柜中有磁盘出现故障,工作人员发现后更换磁盘,新更换的磁盘...

「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复

服务器数据恢复环境:DellPowerVault系列磁盘柜;用RAID卡创建的一组RAID5;分配一个LUN。服务器故障:在Linux系统层面对LUN进行分区,划分sdc1和sdc2两个分区。将sd...

服务器数据恢复-ESXi虚拟机被误删的数据恢复案例

服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。服务器故障&分析:管理员因误操作...

「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例

服务器数据恢复环境:HPStorageWorks某型号存储;虚拟化平台为vmwareexsi;10块磁盘组成raid5(有1块热备盘)。服务器故障:raid5阵列中两块硬盘指示灯变黄掉线,无法读取...

服务器数据恢复—基于oracle数据库的SAP数据恢复案例

服务器存储数据恢复环境:某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。服务器存储故障&分析:该RAID5阵...

「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例

服务器虚拟化数据恢复环境:Dell某型号服务器;数块STAT硬盘通过raid卡组建的RAID10;XenServer服务器虚拟化系统;故障虚拟机操作系统:WindowsServer,部署Web服务...

服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例

服务器数据恢复环境:某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windowsserver,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle...

服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案

RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对...

「服务器数据恢复」IBM某型号服务器RAID5磁盘阵列数据恢复案例

服务器数据恢复环境:IBM某型号服务器;5块SAS硬盘组成RAID5磁盘阵列;存储划分为1个LUN和3个分区:第一个分区存放windowsserver系统,第二个分区存放SQLServer数据库,...

服务器数据恢复—Zfs文件系统下误删除文件如何恢复数据?

服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做...

服务器数据恢复—Linux+raid5服务器数据恢复案例

服务器数据恢复环境:某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。服务器故障&检测:服务器在运行过程中突然瘫痪,...

服务器数据恢复—Sql Server数据库数据恢复案例

服务器数据恢复环境:一台安装windowsserver操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LU...

服务器数据恢复—阿里云ECS网站服务器数据恢复案例

云服务器数据恢复环境:阿里云ECS网站服务器,linux操作系统+mysql数据库。云服务器故障:在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被tru...

取消回复欢迎 发表评论: