网站内容抓取(HTTP响应头说明Allow服务器支持哪些请求方法(如GET、POST等))

优采云 发布时间: 2021-10-18 00:20

  网站内容抓取(HTTP响应头说明Allow服务器支持哪些请求方法(如GET、POST等))

  本章我们将具体介绍HTTP响应头信息。

  响应头描述

  允许

  服务器支持哪些请求方式(如GET、POST等)。

  内容编码

  文档的编码方法。解码后才能得到Content-Type头指定的内容类型。使用 gzip 压缩文档可以显着减少 HTML 文档的下载时间。 Java 的 GZIPOutputStream 可以轻松进行 gzip 压缩,但只有 Unix 上的 Netscape 和 Windows 上的 IE 4、IE 5 支持它。因此,servlet 应该通过查看 Accept-Encoding 头(即 request.getHeader("Accept-Encoding"))来检查浏览器是否支持 gzip,对于支持 gzip 的浏览器返回 gzip 压缩的 HTML 页面,对于支持 gzip 的浏览器返回普通页面其它浏览器。页面。

  内容长度

  表示内容的长度。仅当浏览器使用持久 HTTP 连接时才需要此数据。如果想利用长连接,可以将输出文档写入ByteArrayOutputStream,完成后检查其大小,然后将值放入Content-Length头中,最后通过byteArrayStream.writeTo(response.getOutputStream)发送内容().

  内容类型

  表示以下文档所属的 MIME 类型。 Servlet 默认为 text/plain,但通常需要明确指定为 text/html。由于经常设置 Content-Type,HttpServletResponse 提供了一个专门的方法 setContentType。

  日期

  当前格林威治标准时间。可以使用setDateHeader来设置这个header,避免转换时间格式的麻烦。

  过期

  我应该什么时候认为文档已经过期,不再缓存?

  上次修改

  上次更改文档的时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为条件GET,只有修改时间晚于指定时间的文档才会返回,否则为304(未修改)状态将被退回。也可以使用 setDateHeader 方法设置 Last-Modified。

  位置

  指示客户应该去哪里检索文档。 Location通常不直接设置,而是通过HttpServletResponse的sendRedirect方法,同样设置状态码为302。

  刷新

  表示浏览器刷新文档的时间,以秒为单位。除了刷新当前文档,还可以通过setHeader("Refresh", "5; URL=")让浏览器读取指定页面。

  注意这个功能通常是通过在HTML页面的HEAD区域设置来实现的。这是因为自动刷新或重定向对于那些不能使用 CGI 或 Servlet 的 HTML 编写器是非常重要的。不过对于Servlet来说,直接设置Refresh header更方便。

  注意Refresh的意思是“在N秒内刷新此页面或访问指定页面”,而不是“每N秒刷新此页面或访问指定页面”。因此,持续刷新需要每次发送一个Refresh header,发送204状态码可以防止浏览器继续刷新,无论是使用Refresh header还是。

  请注意,Refresh header 不是 HTTP 1.1 官方规范的一部分,而是一个扩展,但 Netscape 和 IE 都支持它。

  服务器

  服务器名称。 Servlet一般不会设置这个值,而是由Web服务器自己设置。

  设置Cookie

  设置与页面关联的 cookie。 Servlet 不应使用 response.setHeader("Set-Cookie", ...),而应使用 HttpServletResponse 提供的特殊方法 addCookie。请参阅下面有关 cookie 设置的讨论。

  WWW-认证

  客户端应该在 Authorization 标头中提供什么类型的授权信息?在收录 401(未授权)状态行的响应中需要此标头。例如, response.setHeader("WWW-Authenticate", "BASIC realm=\"executives\"").

  注意,Servlets一般不做这个处理,而是让web服务器的特殊机制来控制密码保护页面(如.htaccess)的访问。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线