网络基础-概念

2022-04-21  本文已影响0人  飞不越疯人院

个人笔记纪录, 待完善


1.一些基础概念

3. DNS:
我们访问一个网站通常都是使用域名或者主机名来访问, 但是TCP/IP协议是通过IP来访问的, 所以必须有个机制来转换域名和IP, 而DNS就是用来解决此问题, 它提供了域名到IP之间的解析服务;
DNS解析请求采用UDP明文数据报;常见的查询方式有递归查询和迭代查询;

DNS劫持问题:由于采用UDP明文数据报, 这样就容易被钓鱼DNS劫持
返回错误的IP地址; 注意:DNS劫持HTTP是没有关系的, 因为劫持是发生在HTTP建立之前的;
可以通过HTTPDNS长连接方案解决DNS劫持问题;

4. TCP/UDP
TCP:传输控制协议, 提供面向链接可靠的字流服务, 提供超时重发, 丢弃重复数据, 检测数据控制流量等功能, 正式收发数据之前需要建立三次握手;

UDP:用户数据报协议, 面向非链接, 不保证可靠性的数据传输服务, 没有超时重发等一系列等机制, 故而传输速度很快;
不与对方建立链接, 而是直接把数据包发送过去, UDP适用于一次只传送少量数据对可靠性要求不高的应用环境;

对比.png
5. Session&Cookies

Cookies是保存在客户端用来记录区分用户状态的数据;
Session是保存在服务器端用来记录区分用户状态的数据;
Session依赖于Cookies的机制;

6. URL 和 URI

URLURI的一种, 是其子集;
URL URI中出现了特殊字符例如中文,空格等需要进行编码;

7. 常见 HTTP 请求头/响应头字段以及含义

请求报文和响应报文格式


请求行: GET /URI/ HTTP1.1
请求头:

请求体: 自定义的入参


响应行: HTTP/1.1 200 OK
响应头:

响应体: 数据

8. 常见 HTTPS 的加密方式

常见对称加密算法:DES, 3DES, AES;


补充

1. GET和POST的区别有哪些?
GET POST
GET请求参数以?分隔拼接到URL后面; POST放在Body中;
GET参数长度限制2048字节(不同浏览器不一样); POST无限制;
GET是获取资源; POST是处理资源;
安全性, 幂等, 可缓存; 非安全性, 非幂等, 不可缓存;

安全性: 不引起服务端的任何状态变化;
幂等性: 同一个请求执行多次效果是否一样;
缓存性: 一个请求是否可以被缓存;

下列的表述不准确查看网络基础-传输层, 网络层数据链路层这篇文章的描述;

######2. TCP建立链接三次握手:
  - 1.客户端发送`syn`包,并进入`syn_send`(请求链接)状态, 并等待服务器确认;
  - 2.服务器收到客户端的`syn`(序列编号)包后,也发送一个`syn`(`syn=k`, 即`syn+ack`)包,并进入`syn_reveive`状态;
  - 3.客户端收到服务器的`syn+ack`包,向服务器发送确认包`ack(ack = k+1)`,此包发送完毕则和服务器进入建立链接(`ESTABLISHED`)状态,完成三次握手;
>为什么要三次握手?
简单来说, 第一次握手服务器端确认了: 客户端的发送能力正常以及自己的接受能力正常, 然后第二次握手后客户端可以确认:自己和服务器的发送能力和接收能力正常;然后第三次握手, 服务器端可以确认自己的发送能力正常; 至此, 双方都可以确认彼此的发送/接收能力正常, 然后开始通讯;

######3. TCP断开连接的四次挥手:
   - 1.客户端发送`fin`包到服务器, 请求是否可以断开;
   - 2.服务器发送`ack`包,确认断开连接;
   - 2.服务器发送`fin`包,确认自己可以断开链接;
   - 4.客户端收到服务器的包并断开链接,同时发送`ack`包确认断开;

概述: 第一次, 客户端发送`fin`包给服务器申请断开连接; 第二次, 服务器收到`fin`包发送`ack`给客户端确认可以断开连接, 同时处于`closewait`状态, 同时发送剩余数据;  第三次,剩余数据发送完毕后,  服务器端再次响应客户端发送`fin+ack`, 告知自己可以关闭; 第四次, 客户端收收到包后再次发送`ack`后处于`close`状态, 服务器端收到后处于`close`状态;
######4. 名词解释及链接
位码就是`TCP`标志位,有6种标示: 
建立联机(SYN)
确认(ACK)
传送(PSH)
结束(FIN)
重置(RST)
USG(紧急)

[ack](https://baike.baidu.com/item/ACK/3692629)  即确认字符, 在TCP/IP协议中如果接收方成功收到数据那么会回复一个ack数据(通常ack有自己固定的格式和长度大小, 由接收方回复给发送方);
 [syn](https://baike.baidu.com/item/SYN/8880122?fr=aladdin)即同步序列编号, TCP/IP建立链接使用的握手信号,TCP链接的第一个包; (syn攻击, 大量发送此类的包, 服务器);
 [fin](https://zhidao.baidu.com/question/495480267.html)带有标志位的数据包用来结束一个TCP回话,但对应的端口仍处于开放状态, 准备接收后续的数据;

参考文章
OSI七层模型

上一篇 下一篇

猜你喜欢

热点阅读