
JavaEE网络
文章平均质量分 88
学习JavaEE网络
Hsu琛君珩
去更远的地方,见更亮的光~
展开
-
【JavaEE网络】HTTPS详解:从对称与非对称加密到证书认证
HTTPS 工作过程中涉及到的密钥有三组.第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使用这个私钥对证书的签名进行加密. 客户端通过这个公钥解密获取到证书的签名, 从而校验证书内容是否是篡改过.原创 2024-05-11 00:10:31 · 1242 阅读 · 0 评论 -
【JavaEE网络】用Form与Ajax构建HTTP请求
从前端角度, 除了浏览器地址栏能构造 GET 请求, form 表单能构造 GET 和 POST 之外, 还可以通过 ajax 的方式来构造 HTTP 请求. 并且功能更强大.在我们当前的例子中, test.html 是通过本地文件的方式打开的, 这个环节不涉及 HTTP 交互.**注意: 由于我们的服务器的地址是随便写的, 因此无法获取到正确的 HTTP 响应. **ML, 是 2005 年提出的一种 JavaScript 给服务器发送HTTP 请求的方式.其他代码不变, 只是改下方的代码.原创 2024-05-10 00:11:54 · 996 阅读 · 1 评论 -
【JavaEE网络】HTTP响应详解:状态码、报头与正文的全面解析
如果输入正确, 则可以正确访问到. 但是如果输入错误, 比如 www.sogou.com/index2.html , 就会看到 404 这样的响应.例如, 在浏览器中输入 www.sogou.com/index.html , 此时就在尝试访问 sogou 上的/index.html 这个资源.当服务器负载比较大的时候, 服务器处理单条请求的时候消耗的时间就会很长, 就可能会导致出现超时的情况.状态码表示访问一个页面的结果。但是对方的服务器不一定都支持所有的方法(或者不允许用户使用一些其他的方法).原创 2024-05-09 00:06:00 · 1121 阅读 · 0 评论 -
【JavaEE网络】HTTP请求:方法、URL与报头详解
在浏览器,访问服务器之间,此时你的浏览器对于这个服务器是一无所知的。你的浏览器上是没有任何和这个服务器相关的数据的,请求返回响应之后就返回了很多数据html、css、js、json、图片等等,与此同时也会产生很多“临时性”数据,有的放在服务器这边存储(下次可以直接获取),有的放在浏览器这边存储(比如B站上你有时候会设置视频关闭弹幕,下次打开也是这样的)实际 URL 的长度取决于浏览器的实现和 HTTP 服务器端的实现. 在浏览器端, 不同的浏览器最大长度是不同的, 但是现代浏览器支持的长度一般都很长;原创 2024-05-08 00:06:52 · 846 阅读 · 0 评论 -
【JavaEE网络】HTTP/HTTPS协议的工作原理与格式详解
再回到我们刚刚说的买手机的例子,顺丰相当于 TCP/IP 的功能,那么买回来的手机都附带了说明书【产品介绍,使用介绍,注意事项等】,而该说明书指导用户该如何使用手机【虽然我们都不看,但是父母辈有部分是有看说明书的习惯的:)】,此时的说明书可以理解为用户层协议。所以,我们把数据从A端传送到B端, TCP/IP 解决的是顺丰的功能,而两端还要对数据进行加工处理或者使用,所以我们还需要一层协议,不关心通信细节,关心应用细节!这层协议叫做应用层协议。使用浏览器,打开网站,这个过程都是 HTTP 来支持的。原创 2024-05-06 23:50:24 · 732 阅读 · 1 评论 -
【JavaEE网络】从数据链路层到应用层的DNS
上网要访问服务器,要知道服务器的IP地址,IP地址是一串数字,虽然已经使用点分十进制已经清洗不少了,但仍不方便记忆。使用单词来代替IP地址,比如baidu、sogou、taobao这样的,这样的单词就是“域名”。TCP/IP 中使用 IP 地址来确定网络上的一台主机,但是 IP 地址不方便记忆,且不能表达地址组织信息,于是人们发明了。源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;网络层负责的是整体的转发过程,数据链路层负责的是局部(相邻设备)转发过程。原创 2024-04-29 00:25:56 · 817 阅读 · 0 评论 -
【JavaEE网络】网络编程及其应用概述
此时,大量的设备可以使用同样的IP了(但是是在不同局域网中),此时 IP 不够用问题就得到了很大的改善了。正常关机,就会先尝试干掉所有的进程(强制终止进程),就和上述所说的崩溃的处理是一样的。发送方一次性是可以发送多个应用层数据报的,但是接受的时候,如何区分,从哪里到哪里是一个完整的应用层数据报?粘包问题不仅仅是TCP才有的,只要是面向字节流的机制(文件)也有同样的问题,解决方案也都是一样。,这里“粘”的是“应用层数据报”,通过TCP read/write的数据,都是TCP报文的载荷,也就是应用层数据。原创 2024-04-28 00:10:33 · 818 阅读 · 0 评论 -
【JavaEE网络】 TCP的可靠传输机制总结
恰好三次,就能验证好双方的发送能力和接收能力均正常,并且把这样的信息同步给了双方。原创 2024-04-27 00:09:32 · 825 阅读 · 0 评论 -
【JavaEE网络】TCP/IP协议:细节与应用
实际上,以上的格式约定,咋样都行,任意进行约定的,只要保证,客户端和服务器遵守同一个约定即可。使用二进制的方式,约定某几个字节,表示哪个属性,最大程度的节省空间(不必传输key,根据位置和长度,区分每个属性的)应用层(后端开发必知必会):这一层也有很多现成的协议(后面还会重点介绍HTTP协议,这是做网站必备的)也有很多时候,是需要程序员自己定义协议的。一般网络传输的时候,会对json进行压缩(去掉不必要的换行和空格),同时把所有数据放到一行去,整体占用的带宽就更降低了(影响到可读性)原创 2024-04-25 23:39:38 · 859 阅读 · 1 评论 -
【JavaEE网络】TCP套接字编程详解:从概念到实现
现象:当第一个客户端连接好了之后,第二个客户端不能正确被处理,服务器看不到客户端上线,同时客户端发来的请求也无法被处理,当第一个客户端退出之后,之前第二个客户端发的请求,就能正确响应了。但是这里的返回值并非是一个"Connection"这样的对象,而只是一个 Socket 对象,这个 Socket 对象就像一个耳麦一样,就可以说话,也能听到对方的声音。而由于我们只是通过普通的方式创建线程,有一个连接就创建一个线程,如果有多个客户端,频繁连接/断开,服务器就频繁创建/释放线程了,因此我们直接采用。原创 2024-04-24 23:58:21 · 989 阅读 · 0 评论 -
【JavaEE网络】深入理解Socket套接字及其在网络编程中的应用
DatagramSocket是一个socket对象,操作系统,使用文件这样的概念,来管理一些软硬件资源,网卡,操作系统也是使用文件的方式管理网卡的,表示网卡的这类文件,称为Socket文件。对于数据报来说,可以简单的理解为,传输数据是一块一块的,发送一块数据假如100个字节,必须一次发送,接收也必须一次接收100个字节,而不能分100次,每次接收1个字节。对于字节流来说,可以简单的理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下,是无边界的数据,可以多次发送,也可以分开多次接收。原创 2024-04-24 00:07:16 · 865 阅读 · 0 评论 -
【JavaEE网络】发送端与接收端、请求与响应以及客户端与服务端动态解析
网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。当然,我们只要满足进程不同就行;所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程。特殊的,对于开发来说,在条件有限的情况下,一般也都是在一个主机中运行多个进程来完成网络编程。进程A:编程来获取网络资源进程B:编程来提供网络资源。原创 2024-04-23 00:05:49 · 473 阅读 · 0 评论 -
【JavaEE网络】计算机网络发展及通信基础详解
本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。网络通信协议虽然很复杂,但本质上也是人为约定出来的一些规则,网络发展这么多年了,很多细节已经有大佬规定好现成的协议了,我们主要是学习大佬们这些定好的协议就好了。”:如何标识发送的数据是文本类型,及文本的编码格式呢?因为电脑种类很多,设备的厂商也很多,必须要有一份统一的协议标准,让大家都按照同样的标准来研发设备,大家搞出来的都可以一起相互通信了。原创 2024-04-22 13:41:02 · 972 阅读 · 0 评论