5.4 例子:HTTP服务器

为了说明信息隐藏的问题,让我们考虑一下在软件设计课程中实现HTTP协议的学生所作的设计决策。看看他们做得好的地方和他们有问题的地方都是很有用的。

HTTP是Web浏览器用来与Web服务器通信的一种机制。当用户在Web浏览器中点击一个链接或提交一个表单时,浏览器就会使用HTTP通过网络向Web服务器发送一个请求。一旦服务器处理完请求,它就会向浏览器发送一个响应;该响应通常包含一个要显示的新网页。HTTP协议规定了请求和响应的格式,两者都以文本形式表示。图5.1展示了一个描述表单提交的HTTP请求示例。该课程的学生被要求实现一个或多个类,以使Web服务器能够方便地接收传入的HTTP请求并发送响应。

图5.1:HTTP协议中的POST请求由通过TCP套接字发送的文本组成。每个请求都包含一个初始行,一个以空行结尾的头部信息集合,以及一个可选的请求体。初始行包含请求类型(POST用于提交表单数据),表示操作的URL(/comments/create)和可选参数(photo_id的值为246),以及发送方使用的HTTP协议版本。请求头中的每一行都包含一个名称,如Content-Length,然后是其值。对于这个请求而言,请求体包含额外的参数(comment和priority)。

Last updated