基础总结--网络

1 计算机网络的一些常见状态码

1xx 信息,表示临时相应并需要请求者继续执行操作
2xx 成功,操作被成功并处理
3xx 表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向
4xx 客户端错误,请求包含语法错误或无法完成请求
5xx 表示服务器在尝试处理请求时发生错误

200
302:代表临时跳转
301:和302类似,但是永久性的重定向
304:请求资源成功,但这个资源不是服务器给的,是从客户端本地浏览器缓存中拿的
403:请求服务器资源权限不够,或者请求ip被封
404:服务器没有该资源,
500:程序错误。业务侧可以返回一个定制的错误码或者错误页面,避免浏览器对500请求做处理

2 IOS和TCP/IP各层结构和功能,都有哪些协议?为什么网络要分层?

TCP/IP是一个协议簇;OSI则是一个模型(应表会传网链物)

TCP/IP是由一些交互性的模块做成的分层次的协议,其中每个模块提供特定的功能;

应用层:http、ftp等
传输层:TCP、UDP
网络层:IP协议。 它负责对数据加上IP地址和其他的数据以确定传输的目标
数据链路层:为待传送的数据加上一个以太网协议头,并进行CRC编码,为最后的数据传输做准备

3 TCP 的三次握手和四次挥手?为什么是这样?

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包

第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN©,此时客户端处于 SYN_SENT 状态
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,为了确认客户端的 SYN,将客户端的
ISN+1作为ACK的值,此时服务器处于 SYN_RCVD 的状态
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,值为服务器的ISN+1。此时客户端处于 ESTABLISHED
状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接
在这里插入图片描述
上述每一次握手的作用如下:
第一次握手:客户端发送网络包,服务端收到了 这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常
第三次握手:客户端发包,服务端收到了。 这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常

通过三次握手,就能确定双方的接收和发送能力是正常的。之后就可以正常通信了

tcp终止一个连接,需要经过四次挥手
过程如下
第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态,停止发送数据,等待服务端的确认
第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT状态
第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK
的状态
第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK
报文的序列号值,此时客户端处于 TIME_WAIT状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED
状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态
在这里插入图片描述
四次挥手原因
服务端在收到客户端断开连接Fin报文后,并不会立即关闭连接,而是先发送一个ACK包先告诉客户端收到关闭连接的请求,只有当服务器的所有报文发送完毕之后,才发送FIN报文断开连接,因此需要四次挥手

4 一次完成的http请求所经的步骤

5 http和https的区别

超文本传输协议,加上SSL协议。
ssl依靠证书验证服务器的身份,并未浏览器和服务器之间的通信加密。
分别占用80、443端口

HTTPS的工作原理
1、客户端发起HTTPS请求
2、服务端的配置
3、传送证书
4、客户端解析证书
5、传送加密信息
6、服务段解密信息
7、传输加密后的信息
8、客户端解密信息

6 http请求长连接和短连接

Keep-Alive
连接有两种类型
它们的主要差异在于连接完成后客户端与服务器的行为。

短连接:一次http请求就建立一个TCP连接,传输完数据后断开连接。

长连接:使多个http请求响应可以复用一个连接,知道连接被关闭或达到预先设定的时间上限。

浏览器默认短连接。

7 Cookie和Session的关系

一、共同之处:
cookie和session都是用来跟踪浏览器用户身份的会话方式。

二、工作原理:
1.Cookie的工作原理
(1)浏览器端第一次发送请求到服务器端
(2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端
(3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie
(4)服务器端通过Cookie中携带的数据区分不同的用户

2.Session的工作原理
(1)浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID的固定值,value为session对象的ID),然后将该Cookie发送至浏览器端
(2)浏览器端发送第N(N>1)次请求到服务器端,浏览器端访问服务器端时就会携带该name为JSESSIONID的Cookie对象
(3)服务器端根据name为JSESSIONID的Cookie的value(sessionId),去查询Session对象,从而区分不同用户。
场景一:
name为JSESSIONID的Cookie不存在(关闭或更换浏览器),返回1中重新去创建Session与特殊的Cookie。
name为JSESSIONID的Cookie存在,根据value中的SessionId去寻找session对象。
场景二:
value为SessionId不存在**(Session对象默认存活30分钟)**,返回1中重新去创建Session与特殊的Cookie。
value为SessionId存在,返回session对象。

8 URI和URL的区别是什么?

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

因此,URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值