Java基础复习之计算机网络(4)

这篇我们大致总结一下计算机网络涉及的一些知识点。

网络七层架构

计算机网络有七层架构来支持我们进行网络的连接发送的。所以我们只有先了解底层的原理才可以更加深入的学习。
在这里插入图片描述

TCP/IP协议

  • 【定义】TCP/IP不是单独的两个部分,而是指因特网整个TCP/IP协议族
  • 【组成部分】:网络接口层、网络层、传输层、应用层。
    在这里插入图片描述
  • 组成思维导图:
    在这里插入图片描述

TCP三次握手/四次挥手

TCP在传输之前会进行三次沟通,在传完数据断开的时候进行四次沟通

  • 【四次挥手的原因】:断开连接需要四次是因为TCP的半关闭造成的。因为tpc连接是全双工的(即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭,这个单方向关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个FIN来向另一方通告将要终止这个方向的连接。
  • 首先关闭的一方执行主动关闭,另一方执行被动关闭。主机 A 发送 FIN 后,进入终止等待状态, 服务器 B 收到主机 A 连接释放报文段后,就立即给主机 A 发送确认,然后服务器 B 就进入 close-wait 状态,此时 TCP 服务器进程就通知高层应用进程,因而从 A 到 B 的连接就释放了。此时是“半关闭”状态。即 A 不可以发送给B,但是 B 可以发送给 A。此时,若 B 没有数据报要发送给 A 了,其应用进程就通知 TCP 释放连接,然后发送给 A 连接释放报文段,并等待确认。A 发送确认后,进入 time-wait,注意,此时 TCP 连接还没有释放掉,然后经过时间等待计时器设置的 2MSL 后,A 才进入到close 状态
    在这里插入图片描述

HTTP原理

HTTP是一个无状态的协议。无状态是指客户机和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发送请求,然后服务器返回响应,连接就被关闭了,在服务器端不保留连接的有关信息。

传输流程

  • 【1.地址解析】如果客户端浏览器请求以下这个页面:http://192.168.188.130:8080/index.html。从中我们可以分解出协议名、主机名、端口、对象路径等部分。并且对于192.168.188.130这部分需要使用DNS解析地址解析获取ip。
协议名http
主机名192.168.188.130
端口8080
对象路径/index.html
  • 【2.封装HTTP请求数据包】:把以上部分结合主机自己的信息,封装成一个HTTP请求数据包
  • 【3.封装成TCP包,建立TCP连接】:封装成TCP包,建立TCP连接
  • 【4.客户机发送请求命令】:建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号、后面是MIME信息包括请求修饰符、客户机信息和可见内容。
  • 【5.服务器响应】:服务器收到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的版本号、一个成功或者错误的代码、后边是MIME信息包括服务信息、实体信息和可能的内容。
  • 【6.服务器关闭TCP连接】:一般情况下,一旦 Web 服务器向浏览器发送了请求数据,它就要关闭 TCP 连接,然后如果浏览器或者服务器在其头信息加入了这行代码 Connection:keep-alive,TCP 连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

HTTPS的连接过程

  • 【全称】:Hypertext Transfer Protocol over Secure Socket Layer。
  • 是以安全为目的的HTTP通道,在HTTP下加入SSL层,其所用的端口号为443.
  • 【1.建立连接获取证书】:SSL客户端通过TCP和服务器建立连接后,并且在一般的tcp连接协议过程中请求证书。即客户端发出一个消息给服务器,这个消息里面包含了自己可实现的算法列表和其他一些需要的消息,SSL的服务器端会回应一个数据包,这里面确定了这次通信所需要的算法,然后服务器向客户端返回证书(证书里面包含了服务器信息:域名。申请证书的公司,公共秘钥)
  • 【2.证书验证】:客户端在收到服务器返回的证书后,判断签发这个证书的公共签发机构,并使用这个机构的公共密钥确认签名是否有效,客户端还会确保证书中列出的域名就是它正在连接的域名。
  • 【3.数据加密和传输】:如果确认证书有效,那么生成对称秘钥并使用服务器的公共秘钥进行加密。然后发送给服务器,服务器使用它的私钥对它进行解密,这样两台计算机可以开始进行对称加密进行通信。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值