专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 java web服务器学习,简单得实现思路

java web服务器学习,简单得实现思路

更新时间:2020-04-30 11:06:53 来源:动力节点 浏览2235次

    回想一下一个http请求的过程,你在浏览器输入xxx.com,经过域名解析-->发起tcp的3次握手-->建立tcp连接后发起http请求-->服务器响应http请求,浏览器得到html代码-->浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)-->浏览器对页面进行渲染呈现给用户

java web服务器学习,简单得实现思路

    每一个web服务器程序都需要从网络接受http请求,然后提供http回复给请求者。http回复一般包含一个html文件,有时也可以包含纯文本文件、图像或其他类型的文件。

    画外音:web服务器就是一个处理http请求的应用程序。

    实现大致步骤:

    初始化服务端ServerSocket

    初始化TreadPool

    while(true)等待客户端连接

    <<服务器启动完成>>

    客户端请求

    clientHandler处理客户端的请求

    线程池的线程处理handler

    根据输入流解析请求(解析请求行,解析消息头,解析消息正文)

    根据输出流创建响应对象(发送状态行信息,发送响应头信息,发送响应正文信息)

    <<静态html处理结束>>

    寻找servlet根据请求路径找到需要哪个servlet处理(选择handler)

    通过反射机制加载这个类

    实例化servlet

    servlet处理请求(执行handler结束)

    <<跳转html处理结束>>

    一个应用程序是不是先要启动起来?main函数当然要有,init方法当然有,我们先不管高性能之类的东西,多路复用Reactor之类的,但是总的有处理并发能力吧,线程池大小默认处理器的核心数,多的也处理不过来!服务器通信归根结底都是socket通信,包括redis服务器都是底层都是socket通信。我们怎么知道http请求来了,先长轮询。

java web服务器学习,简单得实现思路

    http请求来了,怎么处理?当然需要有定义handler去处理。

java web服务器学习,简单得实现思路

    handler处理客户端请求并完成响应:

java web服务器学习,简单得实现思路

    处理过来的请求当然要根据输入流解析请求,根据输出流创建响应对象。需要判断是不是后端请求,如果不是后端请求,需要找到对应的文件,设置响应头,设置响应体,返回给浏览器,找不到则返回404。如果是后端请求需要经过servlet,我们肯定需要通过请求路径找到对应的配置文件,我们配置可以放在xml里面,也可以放到map里面,通过反射机制加载某个类,然后实例化某个servlet,处理完设置请求头,设置请求体返回给客户端。

    知识点:IPO模型。

    一个简单的web服务器的思路已经基本有了,但是为什么springboot应用不用你单独启动服务器?springboot默认使用的是Tomcat作为内嵌的服务器。所以,我们搭建一个工程将会变得非常的简单。springboot应用会自动启动一个嵌入的Tomcat服务器实例,至于怎么做到自动的,你问过自己为什么吗?

 以上就是动力节点java培训机构的小编针对“java web服务器学习,简单得实现思路”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>