Java学习-网络编程

目录

1. 网络通信基本概念

1.1 通信

1.2 网络

1.3 协议

1.4 网络通信

1.5 网络通信协议

1.6 TCP/IP协议

1.7 互联网

1.8 计算机网络

2. TCP与UDP协议

2.1 TCP

2.2 UDP

2.3 TCP的三次握手

2.4 为什么要三次握手

2.5 TCP四次挥手

2.6 为什么要四次挥手

3. HTTP1.0与HTTP1.1的区别

4. URI与URL的区别

5. HTTP与HTTPS的区别


1. 网络通信基本概念

1.1 通信

指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息 的双方或多方采用任意方法,任意媒质,将信息从某方准确安全地传送到另一方。

1.2 网络

网络是由节点和连线构成,表示诸多对象及其相互的联系。网络是信息传输、接收、共享的 虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发 展史来最重要的发明,提高了科技和人类社会的发展。

1.3 协议

人在说话时,通过声带振动、口型的变化发出不同的声音。这些声音按照一定的规则,承载 了我们所要表达的思想和信息,这套规则称为语言。
两个人对话,需要使用两个人都能理解的语言 进行,一个只懂中文和另一个只懂英文的人,根本没法用语言交流。同样,智能设备通信时,也要 有这样一套双方都遵从的规定,而这个规定被称为协议。通信协议和接口都可以有多种,并且两者 之间存在一定的关联。

1.4 网络通信

网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算 机,计算机与计算机之间的通信。

1.5 网络通信协议

通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信 息的沟通与交流。
这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正 常、顺利地进行交流。从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约 定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错 控制等作出规定并制定出标准。
网络通信协议是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络提供 通信支持,是一种网络通用语言。
常见的网络通信协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。

1.6 TCP/IP协议

互联网相关联的协议集合起来总称为TCP/IP。
传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol)是Internet最基本、最广泛的一套协议。它定 义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处 理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己 的需求

web

 OSI: Open System Interconnection 开放式系统互联参考模型

1.7 互联网

互联网又称国际网络,或音译因特网(Internet)、英特网。互联网始于1969年美国的阿帕 网。是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一 巨大国际网络。这种将计算机网络互相联接在一起的方法可称作“网络互联”,在这基础上发展出覆 盖全世界的全球性互联网络称之为互联网,即互相连接在一起的网络结构。在这个网络中有交换 机、路由器等网络设备、各种不同的连接链路、种类繁多的服务器和数不尽的计算机、终端。使用 互联网可以将信息瞬间发送到千里之外的人手中,它是信息社会的基础。Internet上的计算机使用 的是TCP/IP协议。

1.8 计算机网络

计算机网络是通信技术与计算机技术相结合的产物。计算机网络是按照网络协议,将 地球上分散的、独立的计算机相互连接的集合。连接介质可以是电缆、双绞线、光纤、微波、载波 或通信卫星。计算机网络具有共享硬件、软件和数据资源的功能,具有对共享数据资源集中处理及 管理和维护的能力。
计算机网络通常被分为:局域网(LAN)、城域网(MAN)、广域网(WAN)

2. TCP与UDP协议

2.1 TCP

TCP:传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数 据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数 据传输。建立一次连接完成三次握手后,客户端和服务器就可以开始进行数据传输了。传输完成之后, 通过四次挥手关闭连接。由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分 广泛,例如下载文件、浏览网页等。

2.2 UDP

UDP:用户数据报送协议(User Datagram Protocol)。UDP协议是一个面向无连接的协议。传输数据 时,不需要建立连接,不管对方端服务是否启动,直接将数据、数据源和目的地都封装在数据包中,直 接发送。每个数据包的大小限制在64k以内。它是不可靠协议,因为无连接,所以传输速度快,但是容 易丢失数据。日常应用中,例如视频会议、直播...等。

2.3 TCP的三次握手

三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可 靠。
客户端–发送带有 SYN 标志的数据包-1次握手-服务端
服务端–发送带有 SYN/ACK 标志的数据包–2次握⼿–客户端
客户端–发送带有带有 ACK 标志的数据包–3次握⼿–服务端

web

2.4 为什么要三次握手

三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主 要的目的就是双方确认自己与对方的发送与接收是正常的。
第一次握手: Client 什么都不能确认; Server 确认了对方发送正常,自己接收正常
第二次握手: Client 确认了:自己发送、接收正常,对方发送、接收正常; Server 确认了:对方 发送正常,自己接收正常
第三次握手: Client 确认了:自己发送、接收正常,对方发送、接收正常; Server 确认了:自己 发送、接收正常,对方发送、接收正常

2.5 TCP四次挥手

web

断开⼀个 TCP 连接则需要“四次挥手”:
客户端-发送⼀个 FIN,用来关闭客户端到服务器的数据传送
服务器-收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加1 。和 SYN ⼀样,⼀个FIN 将占 用⼀个序号
服务器-关闭与客户端的连接,发送⼀个FIN给客户端
客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1

2.6 为什么要四次挥手

任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没 有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

3. HTTP1.0与HTTP1.1的区别

  1. 长连接:在HTTP/1.0中,默认使用的是短连接,也就是说每次请求都要重新建立一次连接。HTTP 是基于TCP/IP协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都 要这样的话,开销会比较大。因此最好能维持一个长连接,可以用个长连接来发多个请求。 HTTP1.1起,默认使用长连接,默认开启 Connection:keep-alive 。HTTP/1.1的持续连接有非 流水线方式和流水线(pipelining)方式。
  • 流水线方式:客户在收到HTTP的响应报文之前就能接着发送新的请求报文,其实就是并行发送请求。
  • 非流水线方式:客户在收到前一人响应后才能发送下一个请求,其实就是串行发送请求。
  1. 错误状态响应码:在HTTP1.1中新增了24个错误状态响应码
  2. 缓存处理:在HTTP1.0中缓存判断标准单一,HTTP1.1则引入了更多的缓存控制策略。
  3. 带宽优化及网络连接的使用:HTTP1.0不支持断点续传功能,存在一些浪费带宽的现象。HTTP1.1 加入了断点续传的支持,允许只请求资源的某个部分,充分利用带宽和连接,避免浪费带宽。

4. URI与URL的区别

URI(Uniform Resource Identifier)统一资源标志符,资源抽象的定义,不管用什么方法表示, 只要能定位一个资源,就叫URI。
URL(Uniform Resource Locator)统一资源定位符,是一种具体的URI,在用地址定位
URN(Uniform Resource Name)统一资源名称,也是一种具体的URI,在用名称定位

5. HTTP与HTTPS的区别

端口:HTTP的URL由“http:/"起始且默认使用端口80,而HTTPS的URL由“https://"起始且默认使用 端口443。

安全性和资源消耗:HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无 法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所有传 输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加 密。所以说,HTTP安全性没有HTTPS高,但是HTTPS比HTTP耗费更多服务器资源

  • HTTPS = HTTP + 加密 + 认证 + 完整性保护
  • HTTPS是身披SSL(Secure Socket Layer)外壳的HTTP。通常,HTTP协议直接与TCP协议通 信,当使用了SSL之后,就演变为HTTP先于SSL通信,然后再由SSL与TCP通信
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东林知识库

你的鼓励是我原创最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值