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时连接远程应用程序的端口号。

原文地址:https://www.cnblogs.com/wongem/p/7495826.html