随笔而感触——javaWeb开发——一些小思考

1:浏览器从本质上来讲也是一个程序,系统,应用软件!!! 在URL从浏览器地址栏框输入之后会经过浏览器自己的“业务代码”进行DNS解析,各种拆解——分解成不同的信息(这些信息在浏览器F12都是可以看到的),然后再与对应的服务器建立TCP/IP连接,然后开始访问服务器;把访问的信息通过“网络包”丢到服务器(从Java而言:一般是 Tomcat)去后,Tomcat会对这个网络包进行解析——>【这是一个复杂的过程,Tomcat把这些数据解析然后封装成:request请求体对象】——>然后Tomcat再根据浏览器发过来的URL定位到指定的Controller——>再把request请求体对象传给Controller————>【到这一步实际上,就开始走程序员自己写的代码了】————>经过一系列的业务骚操作后——————在Controller中封装成 response返回体对象 返回对象然后返回给Tomcat【这里注意很多MVC帮我们已经自动封装response和解析request了,这样就节省了大量的冗余重复代码】————>Tomcat拿到request对象后开始解析(注意:这里面有资源路径(比如:HTML+CSS+JS文件,视频文件,图片文件,文档文件等等))————>Tomcat解析完成后,将资源文件打包成网络包,然后把这些包通过TCP/IP协议的方式丢给客户端的浏览器————>这个时候浏览器拿到了网络传递过来的这些资源包:开始用浏览器自己的内核和组件解析这些资源文件————>然后渲染成我们看到的HTML网页界面!!!【该过程实际上是极其复杂的——>有些请求一次就是十几秒:这个过程肯定发生了很多事情!(按照这条思路可以理清楚很多东西)】

2:一个前后端分离的纯后端Java的SpringBoot项目在使用Maven引入很多包后,启动Main方法,这个过程发生了什么?从本质上来讲框架实际上就是业务系统中的代码的一部分,引入的那些包实际上也是业务系统中代码的一部分,当Main方法启动后,代码开始沿着主线路跑,SpringBoot里面有很多配置,这些配置决定了那些方法会在If else 这些逻辑选择或接口调用时被运行和调用,如果运行到引入的Jar包中去了,可能这个Jar包的代码又会去读配置文件,然后又根据配置文件的配置来决定代码是怎么运行的!【注意:框架的代码也相当于是在写业务,只是他们的业务是为程序员服务的,业务类型不同,他们的业务是为了使程序的开发越来越简单,越来越高效,所以你要理解透彻框架是如何使用的,原理是什么!————这个SpringBoot项目都是用Java代码一点一点堆起来的,跑不出JDK基础!!!只是写法不一样!!!!】你思考一下看,没有这些所谓的框架代码,工具jar包,就用原生自己手写,也是可以达到从浏览器到数据库再访问到浏览器这样的效果的!!! 只不过这个过程极其复杂且漏洞百出!!!框架的作用就是把这个死流程,抽出来了,以最精明高效的方式封装成了Jar包,然后程序员只需要在框架的基础之上——专注业务即可!!!这样省时省力!!!【MyBatis就是优化了连接数据库的部分,MyBatis-Plus就是优化了MyBatis,SpringMVC就是优化了程序员与Tomcat交互的这部分,Spring则是一个整合框架——它可以极好的将各种主键——拼接在一起,相当于一个(万能积木),RabbitMQ呢?这个主键实际上就是消息队列功能的抽取!】————【按照这个思路就可以理清楚Java中的各个轮子,实际上你都不用写什么代码,前辈圣贤们都已经帮你写好了,你直接拿过来用即可!!!】

 

 3:浏览器的运行和前端界面的加载是浏览器这个系统解决的,后端程序的运行是Java程序和服务器状态机器支持的,客户端电脑与服务器之间这个过程是通过网络传递的!!!如果是WIFI那么“网络”这个东西没有网线,又是怎么与服务器传递数据的呢?  

 

 

4:浏览器这个系统是如何解析服务器传过来的各种数据的呢?这个系统有什么限制或者讲究吗?

你可能感兴趣的:(#,随笔,服务器,tomcat,java)