介绍
SCWCD考试中的内容比较多,看中的是一个“广”而不是“深”,下面的一些内容在考试中曾经出现,这里也作为一个专题吧。
HTTP协议的请求方法
HTTP协议的请求方式有5种,分别是:
1)GET:该方式是HTTP中默认的请求方法,客户端主要使用该方法来访问服务器上的文档,GET方法只能传输文本数据而不能传输二进制数据,而且其传送的数据量也比较小。它支持多个参数的发送,并且在发送的时候会把数据封装到HTTP头中传输,如:
GET /login.do?username=zhouych&password=1234&submit=submit HTTP/1.1
2)POST:客户主要通过该方法发送大量信息给服务器,它比GET方法更加安全,因为它把用户的请求数据封装到正文里而不是直接在URI后面加参数,POST支持传送二进制数据。
3)HEAD:该方式主要在客户端和服务器端交流一些内部数据,这些数据不会影响客户浏览网页的过程,可以说对用户是透明的。
4)PUT:客户端可以通过该方式把文档上传给服务器。
5)DELETE:客户端可以通过该方式删除远程服务器上的某个文档。
GET和POST请求方式最常见,而PUT和DELETE请求方式并不常用,因为不少的HTTP服务器并不支持PUT和DELETE请求方式。
关于WEB-INF目录
每个Web应用都有一个WEB-INF文件夹和一个META-INF文件夹,虽然这两个文件夹的物理目录在Web应用的根目录下,但是它们并不被当作根目录的一部分,因为在这两个文件夹中的内容是不允许被客户端访问的,也即对客户端是透明的。
关于服务器间的跳转
服务器跳转的方法有两种,一种是使用RequestDispatcher的forward()方法,一种是使用HttpServletResponse的sendRedirect()方法。
forward()方法是完全在服务器端完成的,而sendRedirect()方法则是发送一个转发信息给客户端浏览器,这个时候客户端的浏览器的地址栏中的URL地址会发生变化。
在一般的情况下,推荐第一种方法,因为它更加高效,并且可以隐藏实际的链接;然而,如果需要跳转到一个其他服务器上的资源,则必须使用第二种方法。