2025年java的项目是什么意思,初学JAVA项目(七、朋友〇 )

java的项目是什么意思,初学JAVA项目(七、朋友〇 )初学 JAVA 项目 七 朋友 前言 一 Wechat 朋友 二 项目完成后的一些思考 1 网址 http localhost 8000 ping 分为几个部分 都是什么意思 2 BS 架构和 CS 架构 2 tcp 三次握手和四次挥手是什么意思 前言 本次项目学习目标

大家好,我是讯享网,很高兴认识大家。

初学JAVA项目(七、朋友〇)

前言

一、Wechat(朋友〇)

二、项目完成后的一些思考

1.网址http://localhost:8000/ping分为几个部分,都是什么意思?

2.BS架构和CS架构

2.tcp三次握手和四次挥手是什么意思?

前言

本次项目学习目标:

主要通过以项目为导向学习C/S模型,http通信等内容

一、Wechat(朋友〇)

社交APP,精简朋友圈,体验单机到联网的乐趣。

截图:

a8f09d56f61e96283b02e31e7b4f2c9b.png
讯享网

二、项目完成后的一些思考

1.网址http://localhost:8000/ping分为几个部分,都是什么意思?

可以用下面这张图来理解,需要注意的是localhost指的是本地IP地址(即:127.0.0.1)

af87196eb69ad4fdc54f3a5aaefe1773.png

协议部分: 该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

域名部分: 该URL的域名部分为“www.jianshu.com”。一个URL中,也可以使用IP地址作为域名使用

端口部分: 跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

http:默认端口号80 ;

https:默认端口号443 ;

ftp:默认端口号21;

Tomcat默人认端口8080;

myslq默认端口3306

路径: index.html虚拟目录; ( www.jianshu.com/路径1/路径2 ; “ / ”表示根目录)

参数部分:

从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

锚部分: 从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分

DNS是什么?

DNS (Domain Name Server ) 译为:域名解析服务

它主要的作用:就是将人们所熟悉的网址 (域名)如“www.baidu.com” “翻译”成电脑可以理解的 IP 地址

2.BS架构和CS架构

C/S(client- server): 客户机——网络——服务器 如

保密性高和硬件交互性高

B/S(browser- server):浏览器——网络——服务器 如浏览器

和硬件交互费点劲

CS 优点:本地响应速度快,在硬件和网络环境不好的情况下用CS能提高效率(其实是降低用户愤怒值)

CS 缺点: 如果 二次开发较多,那这个投入就不好说了。首先你不能保证不继续修改二次开发方案,那么CS 的兼容性就会不断接受挑战。

BS 优点: 部署简单啊!打开就用,不用太担心二次开发带来的兼容性。

BS 缺点: 给用户的感觉就是反应慢。

2.tcp三次握手和四次挥手是什么意思?

三次握手:

TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。

所谓三次握手是指建立一个 TCP连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。

三次握手流程图:

77a58a8fcff1900e926e78561e780082.png

文字流程:

第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。

第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。

第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

四次挥手:

四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。

由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

四次挥手的流程图:

52c7fcb7493e49da754c5b020ef1a108.png

中断连接端可以是客户端,也可以是服务器端。

文字流程:

第一次挥手:客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。

第二次挥手:服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2

状态,继续等待服务器端的FIN报文。

第三次挥手:当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。

第四次挥手:客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。

上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,

具体流程如下图:

45dc9b81295b94f44b452022fedcd06f.png

一篇文字了解计算机网络

标题:《如果让你来设计网络》

作者: 闪客sun

链接:https://mp.weixin..com/s/jiPMUk6zUdOY6eKxAjNDbQ

作者:iOSer

链接:https://zhuanlan.zhihu.com/p/

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小讯
上一篇 2025-03-05 07:58
下一篇 2025-01-24 19:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/120259.html