计算机网络

TCP建立连接的三次握手

刚开始客户端处于 closed 的状态,服务端处于 listen 状态。然后
1、第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN©。此时客户端处于SYN_Send 状态。
2、第二次握手:服务器收到客户端的SYN报文之后,会以自己的SYN报文作为应答,并且也是指定了自己的初始化序列号ISN(s),同时会把客户端的ISN + 1作为ACK的值,表示自己已经收到了客户端的SYN,此时服务器处于SYN_RCVD的状态。
3、第三次握手:客户端收到SYN报文之后,会发送一个ACK报文,当然,也是一样把服务器的ISN + 1作为ACK的值,表示已经收到了服务端的SYN报文,此时客户端处于 established 状态。
4、服务器收到ACK报文之后,也处于established状态,此时,双方以建立起了链接
在这里插入图片描述

TCP断开连接的四次挥手

刚开始双方多处于establised状态,假如是客户端发起的额关闭请求:
1.第一次挥手:客户端发送一个FIN报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT状态。
2.第二次挥手:服务端收到FIN后,会发送ACK报文,且把客户端的序列号+1作为ACK报文的序列号值,表明已经收到客户端的报文了,此时服务端处于CLOSED_WAIT状态。
3.第三次挥手:如果服务端也想断开了,和客户端第一次挥手一样,发送一个FIN报文,且指定一个序列号。此时服务端处于LAST_ACK状态。
4.第四次挥手:客户端收到FIN之后,一样发送一个ACK报文作为应答,且把服务端的序列号值+1作为自己ACK报文的序列号值,此时客户端处于TIME_WAIT状态。经过2MSL时间后确保服务端收到自己的ACK报文之后进入CLOSED状态。
5.服务端收到ACK报文后,关闭连接,处于CLOSED状态。
在这里插入图片描述

HTTP常用的状态码及使用场景

状态码分类
1xx:表示目前的协议的中间状态,还需要后续请求
2xx:表示请求成功
3xx:表示重定向状态,需要重新请求
4xx:表示请求报文错误
5xx:服务器端错误
常用状态码
101:切换请求协议,从HTTP切换到WebSocket
200:请求成功,有响应体
301:永久重定向,会缓存
302:临时重定向,不会缓存
304:协商缓存命中
403:服务器禁止访问
404:资源未找到
400:请求错误
500:服务器端错误
503:服务器繁忙

HTTP方法有哪些

1.GET:获取资源,当前网络中绝大部分使用非都是GET
2.HEAD:获取报文首部,和GET类似,但不返回报文实体主体部分
3.POST:传输实体主体
4.PUT:上传文件,由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法
5.PATCH:对资源进行部分修改。PUT也可以用于修改资源,但只能完全替换原始资源,PATCH允许部分修改
6.OPTIONS:查询指定URL支持的方法
7.CONNECT:要求与代理服务器通信时建立隧道。使用SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议把通信内容加密后经网络隧道传输
8.TRACE:追踪路径

HTTP和HTTPS的区别

1.开销:HTTPS协议需要到CA申请证书
2.资源消耗:HTTP是超文本传输协议,信息是明文传数,HTTPS则是具有安全性的ssl加密传数协议,需要消耗更多的CPU和内存资源
3.端口不同:HTTP使用的80端口和HTTPS使用的443端口

Cookie和Session的区别

Session是在服务端保存的一种数据结构,用来跟踪用户的状态,这是数据可以保存在集群,数据库,文件中。
Cookie是客户端保存用户信息的一中机制,用来记录用户的一些信息,也是实现Session的一种方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值