超文本传输协议 (HTTP) :很多服务器应用程序使用HTTP之外的其他协议。他们在计算机之间维护一个持久性的的连接。应用服务器可以清楚的知道是谁连接上来,而且何时中断连接。因为他们知道每一个连接的状态,以及每一个使用它的人。这称之为状态协议。
相反, HTTP 是一个无状态协议。HTTP server 可以接受来自于各种客户的各种请求,并提供各种响应,即使是这个响应仅仅是说No。没有大量的协商和连接持久性,无状态协议可以处理大量的请求。
HTTP请求的第一行包含方法,其后是请求的来源地址和HTTP版本。HTTP请求头跟在首行后面,可以没有也可以有多个。HTTP 头向服务器提供额外的信息。可以包括浏览器的种类和版本,可接受的文档类型,浏览器的 cookies等等。7种请求方法中, GET 和 POST 是用得最多的。
一旦服务器接收到请求,他就要产生一个HTTP响应。响应的第一行称为状态行,包含了HTTP协议的版本,数字型状态,以及状态的简短描述。状态行后,服务器将返回一个HTTP 响应头,类似于HTTP请求头。
Cookies 和 URL 重写是两个在请求间跟踪用户状态的方式。cookie 是一种特殊的信息包,存储于用户的计算机中。URL 重写是在页面地址中存储一个特殊的标记,Java 服务器可以用它来跟踪用户。
标准的HTTP web 服务器并不传输动态内容。它主要是使用请求来定位文件资源,并在响应中返回此资源。通常这里的文件使用Hypertext Markup Language (HTML) [W3C, HTML] 格式化,以使浏览器可以显示它们。
静态内容直接来自于文本或数据文件,比如HTML 或者 JPEG 文件。这些文件可以随时改变,但通过浏览器请求时,却不能自动改变。
动态内容是临时产生的,典型地,它是针对浏览器的个别请求的响应。