tomcat1(servlet,http,socket)
1.servlet容器是如何工作的?
a.创建一个request对象,用可能会在调用的Servlet中使用到的信息填充该request对象(参数,头,cookies,查询字符串,URI等)。request是javax.servlet.ServletRequest接口或javax.servlet.http.ServletResponse接口的一个实例。
b.创建一个调用Servlet的response对象,用来向Web客户端发送响应。response对象是一个实例。
c.调用Servlet的service()方法,将request对象和response对象做为参数传入。Servlet从request对象中读取信息,并通过response对象发送响应信息。
2.Catalina框图
a.Catalina划分为两个模块:连接器和容器
1)连接器:负责将一个请求与容器相关联。它为接收到的每一个HTTP请求创建一个request对象和response对象。将处理过程交给容器。
2)容器:接收request和response,并负责调用相应的Servlet的service()方法。
3.HTTP
a.一个HTTP请求包含三部分
1)请求方法 - 统一资源标识符(Uniform Resource Identifier,URI) - 协议/版本
GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE
URI通常解释为相对于服务器根目录的相对路径。因此,总以/开头。
2)请求头
包含客户端环境和请求实体正文的相关信息。可能包含浏览器使用的语言,请求实体正文的长度等信息。各个请求头之间用回车/换行符号隔开。
在请求头和请求实体正文之间有一个空行,只有CRLF符。空行对HTTP请求格式非常重要。
3)实体
b.HTTP响应(类似request)
1)协议--状态吗--描述
2)响应头
空行
3)相应实体段
4.Socket类
套接字时网络连接的端点。套接字时应用程序可以从网络中读取数据,可以向网络中写入数据。在java中套接字由java.net.Socket表示。
要创建一个套接字,可以使用Socket类中众多构造函数中的一个。其中一个构造函数接收两个参数:主机名和端口号。
public Socket (String host,int port)
其中,host时远程主机的名称或ip,port时连接远程应用程序的端口号。