我是刚开始编程的。就在今天,我开始学习它。我有点搞不懂
HttpServletRequest。在一个教程中,类doGET()有一些方法,如表单“查询”数据、hostname和客户端的主机名。
据我所知,HttpServletRequest类似于一种协议,它允许服务器接收来自客户端的请求。我的问题是,为什么客户端感兴趣于
knowing something like the client’s host-name or HTTP request headers.如果你发现这个问题很傻,请不要投票否决我的问题,因为我不想失去这个堆叠溢出帐户。
发布于 2013-07-31 08:49:13
首先,HttpServletRequest是一个由Servlet容器实现的接口。HttpServlet是一个方便的类,您的Servlet可以从这些类中扩展并获得所有特定于HTTP的方法。doGet()就是这样一种处理GET请求的方法。
HttpServletRequest类似于协议,它允许服务器接收来自客户端的请求。
HTTP是一种请求-答复协议。容器根据Web收到的实际请求形成一个HttpServletRequest对象,并将其转发给Servlet的service()方法。
为什么客户端对了解客户端的主机名或HTTP请求头很感兴趣。
如果您谈论的是Servlets,那么它总是在服务器端执行。因此,Servlet使用像request.getHeader()这样的方法从客户机发送的请求中读取标头。这些标头提供了一些关于与请求关联的头部的请求(或响应).Many的额外信息,这些信息由服务器本身处理。例如,服务器如何限制对其文档的访问。服务器使用HTTP报头,servlet不需要知道细节。当服务器收到对受限制页面的请求时,它会检查请求是否包含适当的授权头,其中包含有效的用户名和密码。如果没有,服务器本身会发出一个包含WWW认证头的响应,告诉浏览器它对资源的访问被拒绝了。当客户端发送包含正确授权头的请求时,服务器授予访问权,并通过getRemoteUser()调用授予任何被调用的servlet对用户名的访问权。
读HTTP真的很容易,请求头概述。
https://stackoverflow.com/questions/17965533
复制相似问题