欢迎光临散文网 会员登陆 & 注册

第五章 计算机网络

2023-06-08 10:50 作者:littersho  | 我要投稿

这块儿有可能也会问到

一,OSI网络七层模型和tcp/ip四层模型(常以笔试形式考察)

①OSI中的上面4层(应用层、表示层、会话层、传输层)为高层,定义了程序的功能;

下面3层(网络层、数据链路层、物理层)为底层,主要是处理面向网络端到端的数据流。

②四层模型 tcp/ip这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。

二,TCP和UDP协议区别

这俩是传输层的两个协议,他们之间的主要区别是:

1,TCP是面向连接的 ,类似于打电话要先拨号一样的,而udp是面向无连接的,在发送数据之前呢是不需要建立连接的,所以TCP的传送速度要慢

2,TCP是一对一连接的,可靠的协议,保证传输数据的完整性正确性,不丢包不重复,而且是有序的,但是udp就是不可靠的,它只要交付就可以了,不会去保证数据是否正确到达

3,安全性,TCP的安全性比udp要低,漏洞比较多,容易受到攻击

应用:

TCP的使用场景主要是我们平时登录QQ,传文件,发邮件这样的场景

而udp的实时性比较高,所以我们用的微信视频通话这样的场景

三,TCP协议可靠的原因

①超时重传 发送数据时设置一个重传定时器,来监测数据丢失状态,如果说时间已经到了,但还没有收到数据,就判定这个数据包已经丢失

②流量控制 滑动窗口协议 

③拥塞控制 有四个核心算法,慢启动,拥塞避免,快速重传,快速恢复

四,TCP协议三次握手,四次挥手

三次握手的原因是 让客户端和服务端都知道对方具备收和发的能力

clientA  ---syn---> clientB   //clientB 此时已经知道了clientA具备发送的能力 clientA <----syn-----clientB  //clientA 此时已经知道clientB具备收和发的能力                                但是此时clientB还不知道clientA是否具备收的能力 

clientA ----ack----> clientB  //B收到了syn 知道了A具备收的能力

四次挥手的原因:

clientA  ---fin---> clientB   //clientA 给B发送关闭连接

clientA <----fin-----clientB  //clientB 告诉对方自己可以关闭了,但是在关闭之                                            前要把自己发送队列的数据给对端发了 

clientA <----ack----- clientB  //自己发送队列数据给对端发完,给对端说可以关了 clientA ----ack------> clientB //结束挥手 

至于原因:让tcp关闭连接可以保证自己可靠的关闭连接


五,HTTPS和HTTP的区别主要如下:

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

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

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

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


六,HTTP超文本传输协议构成(明文传输,不加密)

http协议的内容分为:请求和响应

HTTP的请求行结构:请求方式+请求地址(url)+请求协议(http)

HTTP的响应行结构:响应协议+响应码+响应信息

HTTP请求中断的原因:

网络拥堵,网络断了或者请求超时,浏览器或者服务器出现问题


请求 包括请求行、请求头、请求正文。

请求行的组成:请求方式、url字段、http版本。

常见的请求方式有:post、get、put、delete、trace、connect、options。

url字段的组成:http://ip地址或域名(www.baid.com)【:端口,是8080就可以省略】/路径?参数1=值1&参数2=值2

请求头:请求头部通知服务器有关于客户端请求的信息。常用的请求头有:User-Agent:产生请求的浏览器类型,Accept:客户端可识别的内容类型列表,Content-Type:请求体的MIME类型。

请求正文:get请求没有请求正文,post请求有请求正文,请求正文类型比较丰富,大小也是由当前的数据决定的。

响应 包括响应行、响应头、响应正文。

响应行的组成:响应信息、响应状态码、http版本。

响应信息:如:OK、Found

响应状态码:

1xx:通知信息,请求被接收需要进行下一步处理;

2xx:请求被成功处理,例如:200;

3xx:请求被重定向;301为永久重定向,302为临时重定向

4xx:客户端请求错误;400:其含义是你访问的页面域名不存在或者请求错误,403:请求被禁止,404:服务器无法找到客户端请求的资源

5xx:服务器错误;500:服务器内部错误

响应头:响应头用于服务器向客户端描述服务器的基本信息,以及数据的描述:例如浏览器类型等

响应正文:类型比较丰富,有图片、文本、视频等

七,常见状态码

  • 200 OK:请求成功,服务器正常处理请求,并返回请求的资源。

  • 201 Created:请求成功,服务器已经成功创建了新的资源,并将其URI返回给客户端。

  • 204 No Content:请求成功,服务器已经成功处理了请求,但没有返回任何实体内容。

  • 301 Moved Permanently:请求的资源已经被永久移动到新的URI,客户端需要更新URI并重新发送请求。

  • 302 Found:请求的资源已经临时移动到新的URI,客户端需要更新URI并重新发送请求。

  • 304 Not Modified:请求的资源没有修改,客户端可以直接使用本地缓存的版本。

  • 400 Bad Request:请求有误,服务器无法处理该请求。

  • 401 Unauthorized:请求需要身份验证,客户端需要提供有效的身份认证信息。

  • 403 Forbidden:请求被服务器拒绝,客户端没有权限访问该资源。

  • 500 Internal Server Error:服务器内部错误,无法完成请求。

  • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于服务器过载或维护等原因。

八,GET 和 POST区别

get是获取数据的,而post是提交数据的, 用于修改服务器上的数据,有副作用

GET不如POST安全,虽然两者都可以是明文,因为POST用body传输数据,而GET用url传输,更加容易看到

GET 能直接在历史记录中看到,能被缓存,而 POST 不可缓存,有历史记录就会有很多安全隐患

GET 幂等的,多次点击是不会产生副作用的,而post是非幂等的

九,cookie,seeion,token对比:

cookie 举例:服务器看你的身份证,然后给你一个编号,以后进行任何操作,都出示编号后服务员去看服务器上的身份证库查你是谁。

token 举例:我发给你一张加密的身份证,以后你只要出示这张卡片,我就知道你一定是自己人。

seeion举例:  我发给你一张身份证,但只是一张写着身份证号码的纸片。你每次来办事,我去后台查一下你的 id 是不是有效。

说下区别特点:

cookie与session的其他不同之处:

1、存储位置不同

cookie的数据信息存放在客户端浏览器上。

session的数据信息存放在服务器上。

2、存储容量不同

单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。

对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。

3、存储方式不同

cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。

session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。

4、隐私策略不同

cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。

session存储在服务器上,对客户端是透明的,不存在敏感信息泄漏的风险。

5、有效期上不同

开发可以通过设置cookie的属性,达到使cookie长期有效的效果。

session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。

6、服务器压力不同

cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。

session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。

7、浏览器支持不同

假如客户端浏览器不支持cookie:

cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。

运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。

假如客户端支持cookie:

cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。

session只能在本窗口以及子窗口内有效。

8、跨域支持上不同

cookie支持跨域名访问。

session不支持跨域名访问。

cookie和token的区别

cookie:登陆后,后端生成一个sessionid放在cookie中返回给客户端,并且服务端一直记录着这个sessionid,客户端以后每次请求都会带上这个sessionid,服务端通过这个sessionid来验证身份之类的操作。所以别人拿到了cookie等于拿到了sessionid,就可以完全替代你。

token:登陆后,后端会返回一个token给客户端,客户端将这个token存储起来,然后每次客户端请求都需要开发者手动将token放在header中带过去,服务端每次只需要对这个token进行验证就能使用token中的信息来进行下一步操作了。

十,在浏览器输入一个url,然后进行搜索,这个页面展示流程是怎么工作的

第一步 DNS域名解析协议,把域名地址解析为IP地址

第二步 TCP连接,进行三次握手

第三步 客户端发送HTTP请求到服务器端

第四步 服务器端处理请求,返回HTTP报文

第五步 浏览器接收返回HTTP报文,进行渲染展示

第六步 断开连接 进行四次挥手

十一,上网的时候非常卡,加载很慢

第一,是不是网速太慢了,带宽不足,硬件配置太低,内存被占满

第二,网页的js脚本太大,阻塞了页面的加载

第三,HTTP请求次数太多,或者网页上资源太多,有文档有视频

第四,接收数据的时间比较长,加载某个资源比较慢

第五,DNS 域名解析协议解析的速度比较慢




第五章 计算机网络的评论 (共 条)

分享到微博请遵守国家法律