web服务器
- 监听一个TCP端口
- 转发请求,回收响应
- 本身没有业务逻辑,连接操作系统和应用程序代码
模型如下(借图,枕边书老师)
解释一下流程:
-
客户端向服务器发送一个http请求,通过网络达到web服务器所在的操作系统,通过网络传播的信息只能是一些bit流,我们不能从中读取信息。
-
然后这些bit流通过网卡到达操作系统,操作系统的TCP/IP栈解析这些Bit流,解析出来请求地址,请求端口的源信息,还有请求的具体内容,操作系统会把这些信息发送给web服务器来处理。
-
这些信息就是端口ip和一些字节流,这些字节流到达web服务器后,会由web服务器链接到应用程序,由应用程序来处理,处理完后把结果原路返回,返回到客户端。
web服务器链接客户端的请求和应用程序的过程叫做请求分发。
如图所示(借图,枕边书老师):(web服务器不处理消息,只是充当操作系统和应用程序的连接者,高效而准确才是他们的目标)
Sevlet(web服务器分发请求)
- 一种规范:约定了java服务器与业务类的通信方式
- 一个接口:javax.servlet.Servlet
- 一个java类:实现了Servlet接口的应用程序类(一个servlet实现一种特定的业务逻辑,一般对应一个uri)
有sevlet的情况下,客户端请求的处理模型:(借图,枕边书老师)
sevlet可能会有多个,服务器会把传入的数据(字节流)通过ServletRequest对象发送到servlet里,这个servlet通过一系列业务处理,再把响应通过ServletResponse对象返回给web服务器,再由web服务器返回给客户端。