第一章 一个简单的Web服务器
本章主要介绍Web服务器是如何运行的。基于Java的Web服务器有两个重要的类:Socket和ServerSocket,本章介绍此二类和HTTP和一个简单的Web服务器。
1.1 HTTP
1、是什么:HTTP允许Web服务器和浏览器通过Internet发送并接收数据,是一种基于“请求——响应”的协议。
2、内容
1.HTTP请求:包括请求方法——统一资源标识符(URI)——协议/版本、请求头、请求体。(如图)
URI:指定Internet资源的完整路径。通常被解释为相对于服务器根目录的相对路径。故以“/”开头。URL实际为URI的一种。
请求头:请求头间用CRLF(即回车换行符,\r\n)来分割。请求头和请求行用一个空行分开。
2.HTTP响应:协议——状态码——描述、响应头、响应实体段。
1.2 Socket类
Socket表示客户端套接字。
Sokect,即为套接字。套接字使应用程序可以从网络中读取或写入数据。不同的计算机之间可以通过连接发送或接收字节流,以此达到互相通信的目的。
创建套接字:public Socket(host,port)
1、ServerSocket类
ServerSocket表示服务端套接字,其要等待客户端套接字的连接请求。
创建ServerSokcet:用四个构造函数之一,需要监听的IP地址和监听端口号。(必须),可有backlog(表示传入连接请求的最大队列长度)
IP地址(绑定地址):必须为InetAddress的实例,可用InetAddress.getByName(ip)获得。
1.3 应用程序(简易Web服务器)
该程序仅发送位于指定目录的静态资源的请求。
包含三个类,分别为HttpServer,Request,Response。
HttpServer:表示一个Web服务器,负责接收请求并响应请求。其通过Socket获得请求,并将请求封装成Request对象,把解析过后的Request传给Response对象,让Response找到静态资源并返回给客户端。
代码可从书籍给出的网址获取:https://www.brainysoftware.com/download;jsessionid=0C65689E1931A351F6B14844DE9EBF29
第二章 一个简单的Servlet容器
Servlet编程需用到 javax.servlet.Servlet和javax.servlet.Http两个包。
2.1 javax.servlet.Servlet接口
1、5个方法
init()、service()、destroy()是与Servlet生命周期相关的方法。(调用顺序从前到后)
init():某个servlet被实例化后,容器会调用且<