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通信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552400.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营Day18 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

目录 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差 题目 530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值…

python16_引号使用

引号使用 A "Im a teacher!" B I\m a teacher! C """Im a teacher!, I am a teacher!, "I am a teacher!" """def single_quote(s):return sdef double_quote(s):return sdef triple_quote(s):return sif __name__ &qu…

【Linux】进程+权限管理+软硬链接+其他命令

目录 1. man手册 2. find按文件名称 3. find按文件类型 4. date显示时间 5. cal显示日历 6. du文件大小 7. ln链接 8. 软连接,硬链接区别 9. 文本查找 10. wc统计文本(计算文件的Bytes数、字数或列数) 11. 查看文本内容: 1…

单调队列与单调栈<2>——单调栈

单调栈的定义 单调递增栈 栈中元素从栈底到栈顶是递增的。 单调递减栈 栈中元素从栈底到栈顶是递减的。 单调栈的核心内容 我们从左到右遍历元素,构造单调栈(从栈顶到栈底递增或减):在 i 从左往右遍历的过程中,我…

C语言、Eazy_x——井字棋

#include<graphics.h>char board_data[3][3] { { -,-,-},{ -,-,-},{ -,-,-}, };char current_piece o;//检测指定棋子玩家是否获胜 bool CheckWin(char c) {if (board_data[0][0] c && board_data[0][1] c && board_data[0][2] c)return true;if (…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

常见的VPS或者独立服务器的控制面板推荐

随着越来越多的企业和个人转向VPS和独立服务器以获得更高的性能和灵活性&#xff0c;选择合适的控制面板变得尤为重要。一个好的控制面板可以大大简化服务器管理&#xff0c;提高工作效率。本篇文章将介绍2024年最值得推荐的VPS控制面板&#xff0c;帮助您做出明智的选择。 1.…

python调用opencv报错“module ‘cv2‘ has no attribute ‘namedWindow‘”

之前电脑上使用pip install安装过opencv相关的python模块&#xff0c;不过后续学习opencv时主要使用OpenCVSharp在VS2022中创建项目测试。今天学习过程中突然想用python试试&#xff0c;不过运行下面代码时报错“module ‘cv2’ has no attribute namedWindow”。 import cv2c…

TVS管工作原理:【图文讲解】

TVS(Transient Voltage Suppressor)二极管&#xff0c;又称为瞬态抑制二极管&#xff0c;是普遍使用的一种新型高效电路保护器件&#xff0c;它具有极快的响应时间&#xff08;亚纳秒级&#xff09;和相当高的浪涌吸收能力。当它的两端经受瞬间的高能量冲击时&#xff0c;TVS能…

每日OJ题_牛客_DP2跳台阶_动态规划_C++_Java

目录 牛客_DP2跳台阶_动态规划 题目解析 C代码 Java代码 牛客_DP2跳台阶_动态规划 跳台阶_牛客题霸_牛客网 题目解析 当前值只和数组的前两个值有关&#xff0c;在往前面的就无关了&#xff0c;所以没必要申请一个数组&#xff0c;直接使用两个变量即可&#xff0c;这样空…

【数据结构与算法】时间复杂度和空间复杂度例题

文章目录 时间复杂度常数阶时间O(1)对数阶时间O(logN)线性阶时间O(n)线性对数阶时间O(nlogN)平方阶时间O(n*n) 空间复杂度常量空间O(1)线性空间O(n)二维空间O(n*n)递归空间 时间复杂度 常数阶时间O(1) 代码在执行的时候&#xff0c;它消耗的时间并不随着某个变量的增长而增长…

pytorch之梯度累加

1.什么是梯度&#xff1f; 梯度可以理解为一个多变量函数的变化率&#xff0c;它告诉我们在某一点上&#xff0c;函数的输出如何随输入的变化而变化。更直观地说&#xff0c;梯度指示了最优化方向。 在机器学习中的作用&#xff1a;在训练模型时&#xff0c;我们的目标是最小…

LeetCode[中等] 279.完全平方

给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全平方数&#xff0c;而 3 和 11 不是。 1…

数值计算的程序设计问题举例

### 数值计算的程序设计问题 #### 1. 结构静力分析计算 **涉及领域**&#xff1a;工程力学、建筑工程 **主要问题**&#xff1a;线性代数方程组&#xff08;Linear Algebraic Equations&#xff09; **解释说明**&#xff1a; 在结构静力分析中&#xff0c;我们需要解决复杂的…

Java项目实战II基于Java+Spring Boot+MySQL的购物推荐网站的设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着互联网技术的飞速发展&#xff0c;电子商务已成为人们日常生活中不可或缺的一部分。然而&#xf…

自动驾驶系列—自动驾驶MCU架构全方位解析:从单核到多核的选型指南与应用实例

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

VIIRS 版本1(5000)数据于2024年6月17日停更,请转向VIIRS版本2(5200)

根据官网发布的消息&#xff0c;VIIRS版本1&#xff08;5000&#xff09;的多数数据产品于今日停止更新。需要VIIRS数据的朋友需要转向版本2数据了。 可见红外成像辐射计套件 (VIIRS) 第 1 版 (集合 1) 陆地数据产品于 2024 年 6 月 17 日终止生产。唯一的例外是双向反射分布函…

python+requests接口测试(tonken)

一、如何提取tonken值 token案例&#xff1a; 案例&#xff1a; 网站&#xff1a;http://shop.duoceshi.com/login?redirect%2Fdashboard 验证码&#xff08;固定&#xff09;&#xff1a;8888 二、抓取接口 第一个接口&#xff1a;code接口&#xff1a;http://manage.duoc…

Stm32的bootloader无法使用问题

Stm32的bootloader无法使用问题 用不了一键下载电路 首先简单地对此处涉及的内容进行介绍:如果stm32的BOOT0引脚为低电平时,系统从FLASH中启动,而如果BOOT0引脚为高电平,且BOOT1为低电平时,系统从自举程序(bootloader)中启动. 我在自制照相机设计中加入了ISP一键下载电路,如…

C# 无边框窗体,加阴影效果、多组件拖动、改变大小等功能完美实现优化版效果体验

一、预览效果 国庆节第一天,祝祖国繁荣昌盛! 1.1 效果图 (WinForm无边框窗体,F11可全屏) 拖动窗体时半透明效果(拖动时参考窗体后面释放位置) 说明:本功能的实现基于网友的原型完善而来,更多代码可以参考他的文章 h