首页 > 代码库 > JavaWeb总结(一)
JavaWeb总结(一)
在学习Web应用程序客户端界面设计时,我们已经知道组成一个基本的Web应用程序需要Web服务器、Web客户端浏览器、HTTP协议以及静态HTML文件。
Web服务器:接收客户端请求,然后向客户端返回一些结果;
浏览器:允许用户请求服务器上的某个资源,并且向用户显示请求的结果;
HTML:告诉用户浏览器怎么向用户显示内容;
HTTP:Web上客户端和服务器之间通信所用的协议;
HTTP
HTTP是一种超文本传送协议(HyperText Transfer Protocol),是一套计算机在网络中通信的一种规则。在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。HTTP是一种无状态的协议(在Web浏览器[客户端]和Web服务器之间不需要建立持久的链接)。整个过程就是当一个客户端向服务器发送一个请求(Request),然后WEB服务器返回一个响应(Response)。之后链接就关闭了。HTTP遵循请求/响应(Request/Response)模型的,所有的通信交互都被构造在一套请求和响应模型中。
HTTP定义的事务处理由以下四个步骤组成
客户端和Web服务器建立链接;
客户端发送HTTP请求;
服务器端接收客户端的HTTP请求,生成HTTP响应回发;
客户端和Web服务器建立链接;
发送请求信息
一旦建立了TCP链接,Web浏览器就会向Web服务器发送请求命令。HTTP协议将来自于客户端的请求信息封装成HTTP请求,它包括请求行、请求头、消息体以及分隔请求头和消息体的空行;
请求行:请求行是一个ASCII文本行,由三个标记组成:请求的HTTP方法、请求的URL、HTTP版本。中间用空格分开
在HTTP版本1.1中,定义了有八种可能的HTTP请求方法
Ⅰ GET:由于向服务器检索资源;
Ⅱ POST:由于向服务器发送数据,并要求指定的URL处理;
Ⅲ HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档;
Ⅳ PUT:请求服务器保存请求数据作为指定URL新内容;
Ⅴ DELETE:请求服务器删除URL中命名的资源;
Ⅵ OPTIONS:请求关于服务器支持的请求方法信息;
Ⅶ CONNECT:已文档化但当前未实现的一个方法,预留做隧道处理;
在这些方法中,我们最常用的是GET和POST方法,其它几种方法对于Web开发者来说不是很常用。
方法 | 为该方法为该方法的请求 |
POST | 在浏览器地址栏输入URL; |
GETGET | 通常被用于发送私密信息或者大量信息,或者上传文件。如果一个应用程序需要修改数据或者添加数据,并且通过HTTP发送请求,那么就应该使用POST方法。 |
请求头:
HTTP协议使用HTTP头来传递请求的元信息,HTTP头是一个用冒号分隔的名称/值对,冒号前面是HTTP头的名称,后面是HTTP的值。常见的请求头由用户代理资料、可以接受的格式、语言以及内容编码,这些信息用于告诉服务器客户端是什么,客户端想要得到什么格式的回馈信息等。
空行:
发送回车符和退行,通知服务器一下不再有请求头。
消息体:
HTTP请求中带有查询字符串时,如果是GET方法,查询字符串或表单数据附加在请求行中,那么消息体中就没有内容;如果是POST方法,查询字符串或表单数据就添加在消息体中。
回送响应消息
Web服务器解析请求,定位并读取指定的资源。将文件以及其它信息组成HTTP响应返回到客户端。HTTP响应包括:状态行、响应头、消息体以及分隔消息头和响应头的一个空行。
状态行:
每个HTTP响应以一个状态行开头。状态行由HTTP协议版本、响应状态码和响应描述组成,三者之间用空格分开。
响应状态码是一个三位的数字,它分为以下几个组:
Ⅰ 100~199:信息,请求收到,继续处理;
Ⅱ 200~299:成功,行为被成功地接受、理解和采纳;
Ⅲ 300~399:重定向,为了完成请求,必须进一步执行的动作;
Ⅳ 400~499:客户端错误,请求包含语法错误或者请求无法实现;
Ⅴ 500~599:服务器错误,服务器不能实现一种明显的无效请求;
每一个响应状态码都有相关联的字符串响应描述。
响应头:
响应头与请求头一样,也是一个用冒号分隔的名称/值对,冒号前面是HTTP头的名称,后面是HTTP头的值。典型的响应头包括内容描述、内容长度、时间邮戳、服务器信息、内容最后更改的时间。这些信息帮助客户端得到发送过来的内容是什么、内容的大小、数据是否比以前一次响应更新。
在响应头中,最重要的HTTP头是Content-Type,它指定MIME类型。MIME类型告诉浏览器要接受的数据是什么类型,这样浏览器才知道如何显示这些数据。这个值通常与HTTP请求头中的Accept相关
空白行:
最后一个响应头之后是一个空行,发送回车符和退行,表明以下不再有响应头。
消息体:
要发送给客户端的HTML文档或其他要显示的内容等。Web服务器把发送给客户端的文档信息放在消息体中。
关闭连接
HTTP响应到达客户端后,浏览器先解析HTTP响应中的状态行,查看请求是否成功的状态代码。然后解析每一个响应头,读取响应消息体,将消息体渲染在浏览器页面上。
一个HTML文档可能包含其它的需要被载入的资源,浏览器会识别,并对这些资源再进行额外的请求,这个过程可以一直循环到所有的数据都按照响应头标中规定的格式恢复到页面中。数据传送完毕,服务器关闭连接,即无状态协议。
JavaWeb总结(一)