基础学习-网络请求

超文本传输协议 http

        协议免费使用

        明文传输

        端口80

        无状态

超文本安全传输协议 https

        需要申请ca证书

        ssl 加密传输协议

        端口443

        由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议

OSI七层网络模型

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

常会接触到的就是传输层(TCP、UDP)和应用层(HTTP、HTTPS等)

TCP/IP四层概念模型

数据链路层 PPP、PDN

网络层 IP

传输层 TCP

应用层 HTTP

 一次完整的网页请求过程

  1. 浏览器确定Web服务器和文件名
  2. 生成HTTP请求
  3. DNS域名解析:通过域名查找真实的IP[地址
  4. 协议栈:通过 DNS 获取到 IP 后,浏览器通过调用socket库,委托应用层的TCP执行收发数据的操作

  5. TCP进行三次握手

  6. TCP报文生成:TCP头部生成,IP头部生成, 在双方建立了连接后,TCP 报文中的数据部分就是存放 HTTP 头部 + 数据,组装好 TCP 报文之后,交给网络层处理。
  7. IP:使用IP模块将数据封装成网络包
  8. IP报文生成:加上IP头部的数据包

  9. MAC地址获取,发送方:存在网卡里.接收方:通过ARP协议:通过广播找到对方的MAC地址

  10. 到现在网络包已经生成好了,但是需要经过网卡把数字信息转换为电信号

  11.  然后就可以到交换机和路由器发出,交换机不具有 MAC 地址将包存在缓存,路由器有 MAC 地址,同时还具有 IP 地址

  12. 数据到达服务器后开始一层一层的扒包确认都符合,MAC,IP,TCP,最后到http请求,服务器解析完之后返回,返回时候也是从http开始穿上 TCP、IP、MAC 头部,不过发送者和接收者颠倒,后面就都一样了经过交换机,路由器,客户端收到数据包后,在一层一层把http扒出来

  13. 最后TCP 四次挥手,至此双方的连接就断开了

网络传输过程

是一个封装和解封的过程,用户发送请求,就是用户数据从应用层封装到物理层,服务器得到物理层的比特流,解封得到对应的数据

TCP

TCP协议:传输控制协议

基于TCP协议:HTTP、HTTPS

TCP报文由头部和数据部分组成

源端口和目的端口

序号  字节流中的每个字节都按顺序编号

确认号  期望收到对方下一个报文的第一个数据字节的序号

ACK  建立链接后ACK为1

RST  为1时表明连接出现错误

SYN 为1时表示这是连接请求

FIN  为1时表示发送端数据发送完成,要求释放链接

 TCP三次握手

建立连接,客户端发送SYN包到服务器,等待服务器确认

服务器收到SYN包,发送一个ACK确认包和SYN包,等待客户端确认

客户端收到SYN+ACK包,向服务器发送ACK确认包,客户端和服务器连接成功

 TCP四次挥手

客户端停止发送数据,并发送FIN包,客户端进入终止等待状态

服务器收到发出ACK包,并带上序列号,服务端进入终止等待状态,客户端收到确认请求后继续终止等待状态

服务器将最后的数据发送完后,向客户端发送FIN包,服务器处于半关闭状态,并发送ACK包,服务器进入最后确认状态

客户端收到连接释放报文后,发送确认报文ACK包,并带上序列号,发送完后客户端进入时间等待状态,服务器收到后理解关闭

UDP

不创建连接,速度快,会丢包,会出错,资源消耗小

基于UDP协议:DNS

SSL

 认证用户和服务器,确保数据发送到正确的客户端和服务器

加密数据以防止数据中途被窃取;

维护数据的完整性,确保数据在传输过程中不被改变。

服务器认证阶段:

1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;

2)服务器根据客户的信息确定是否需要生成新的主秘钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;

3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;

4)服务器回复该主密钥,并返回给客户一个用主秘钥认证的信息,以此让客户认证服务器。

用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开秘钥,从而向服务器提供认证。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值