1、网络协议是什么?
在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。
2、网络协议的七层模型
1、应用层:通过对应用操作,确定用户的请求
2、表示层 3、会话层
4、运输层:提供通用的数据传输服务,保证服务器的数据能正常交互
5、网络层:确保计算机通信的数据及时传送(数据传输的速度取决于网络的速度)
6、数据链路层:保证主机的数据能够正常传输 7、物理层
3、运输层主要使用的两种协议
1、传输控制协议-TCP:提供面向连接的,可靠的数据传输服务。
2、用户数据报协议-UDP:提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)
4、请求报文
1、起始行:
请求的方法(get post) 请求的URL 协议类型及版本(HTTP/1.1)
2、请求头:
Host:给出了接收请求的服务器的主机名和端口号
Referer:提供了包含当前请求URI的文档的URL
User-Agent:将发起请求的应用程序名称告知服务器
token:请求密钥
3、请求体:发出请求的参数
5、响应报文
1、起始行:状态码(200 404 500)
2、响应头 3、响应体
6、常见的状态码
200~299(成功状态码) 300~399(重定向状态码)
400~499(客户端错误状态码) 500~599(服务器端错误状态码)
7、TCP的三次握手
1、客户端会生成一个序列号seq去访问服务端
2、服务端拿到客户端的序列号seq保存,并生成一个ack标志给客户端
3、客户端拿着ack标志和序列号访问服务端,服务端验证通过则建立TCP连接,进行数据传输
8、TCP的四次挥手
1、客户端请求数据传输完成后,携带FIN标志和序列号seq向服务端发生释放连接报文(还没完全收到响应数据,即可发送)
2、服务端收到报文后,携带ACK标识回复确认报文
3、服务端将响应数据传输完毕,向客户端发出连接释放报文
4、客户端收到释放报文,携带(ack、seq)向服务端发送确认报文
9、HTTP和HTTPS的区别
端口80 443
http:运行在TCP协议之上,明文传输
https:请求响应都经过加密处理,可以说更安全
10、post跟get的区别
get的请求参数一般携带在url之上
url的长度限制,get的请求参数不会太长,Google限制 8000字符
post的请求参数携带在请求体里面,会更加安全,可以携带大量的请求参数
11、session、cookie 、token的区别
session:保存在服务端,大小无限制
cookie:保存浏览器端,数据量不能超过4K
token:一般根据用户登录生成,用来保存当前登录的信息,访问系统功能都会根据token进行身份校验