1.用户态和内核态
用户态和内核态的区别就是CPU指令集权限的区别,linux中内核态的权限是ring0,完全在操作系统内核中运行,可以直接操作硬件,比如网卡磁盘内存,用户态的权限是ring3,在用户应用程序中运行,通过调用操作系统提供的接口来达到访问网络硬件的操作。
2.用户态和内核态的切换
保留用户态现场(上下文,寄存器,用户栈)
复制用户态参数,用户栈切换到内核栈,进入内核态
额外的检查(因为内核代码对用户不信任)
执行内核态代码
复制内核态代码执行结果,回到用户态
恢复用户态现场(上下文,寄存器,用户栈)
3.HTTP状态码
200:服务器成功处理并返回了结果
400:请求格式错误
401:未授权访问
403:禁止访问
404:请求资源不存在
500:服务器内部错误
4.HTTP请求结构
1.请求行(Request Line)
方法:指明HTTP请求的方法,如GET,POST,GET,DELETE
请求URI:标识要访问资源的统一资源标识符(URI)或者统一资源定位符(URL)
HTTP版本
2.请求头(Request head)
包含一系列键值对,如Host(主机名和端口号)、User-Agent(客户端信息)、Accept(接受的内容类型)、Accept-Encoding(接受的压缩格式)、Authorization(认证信息)、Content-Type(请求体的MIME类型)、Content-Length(请求体长度)等。
3.请求体(Request body)
可选部分,JSON
5.HTTP响应结构
1.状态行(status Line)
状态码
状态描述
HTTP版本
2.响应头(Response Header)
类似于请求头部,也是一系列键值对,如Date(响应生成日期)、Server(服务器信息)、Location(重定向位置)、Content-Type(响应体的MIME类型)、Content-Length(响应体长度)、Set-Cookie(设置Cookie)等。
3.响应主体(Response Body)
返回的实际内容

6.TCP/IP协议
TCP/IP协议四层模型包括:应用层,传输层,网络层,链路层。TCP负责在数据发送时进行分组,确认重传,以确保数据的可靠传输;IP负责将数据包从源主机发送到目标主机。
7.TCP三次握手,四次挥手
三次握手:
a.发送端首先发送一个带有SYN标志的数据包给接收方
b.接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认消息,表示我接收到了
c.发送方再回传一个带有ACK标志的数据包,表示我接收到了
四次挥手:
a.发送方发送一个FIN,用来关闭数据传送
b.接收方收到FIN,发送一个ACK给发送方
c.接收方发送一个FIN,用来关闭数据传送
d.发送方收到FIN,发送一个ACK给接收方

8.UDP是面向无链接的,不需要3次握手4次挥手,是不可靠的,相对比TCP来说比较快。


MockingJay
7 声望3 粉丝