当前位置: 首页 > news >正文

优化网站 主题网站建设讠金手指 22

优化网站 主题,网站建设讠金手指 22,济南网站建设公司有哪些,wordpress 添加按钮文章目录 HTTP响应详解使用抓包查看响应报文协议内容 Response对象Response继承体系Response设置响应数据功能介绍Response请求重定向概述实现方式重定向特点 请求重定向和请求转发比较路径问题Response响应字符数据步骤实现 Response响应字节数据步骤实现 HTTP响应详解 使用抓…

文章目录

  • HTTP响应详解
    • 使用抓包查看响应报文协议内容
  • Response对象
    • Response继承体系
    • Response设置响应数据功能介绍
    • Response请求重定向
      • 概述
      • 实现方式
      • 重定向特点
    • 请求重定向和请求转发比较
    • 路径问题
    • Response响应字符数据
      • 步骤
      • 实现
    • Response响应字节数据
      • 步骤
      • 实现

HTTP响应详解

使用抓包查看响应报文协议内容

Snipaste_2024-05-03_15-01-02.png
由于浏览器的原因,浏览器会把请求行和响应行信息放在一起

  1. 响应行

状态码

状态码状态码描述说明
200OK请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
302Move temporarily重定向,请求的资源临时从不同的 地址响应请求。
304Not Modified浏览器缓存中读取数据,不从服务器重新获取数据。例如,用户第一次从浏览器访问服务器端图片资源,以后在访问该图片资源的时候就不会再从服务器上加载而直接到浏览器缓存中加载,这样效率更高。
404Not Found请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
403Forbidden服务器已经理解请求,但是拒绝执行它
405Method Not Allowed请求行中指定的请求方法不能被用于请求相应的资源
500Internal Server Error服务器内部错误。通常程序抛异常
  1. 响应头

响应头也是用的键值对key:value,服务器基于响应头通知浏览器的行为。
常见的响应头

响应头Key响应头value
location指定响应的路径,需要与状态码302配合使用,完成重定向
content-Type响应正文的类型(MIME类型,属于服务器里面的一种类型,例如文件在window系统有自己的类型,.txt .doc .jpg。文件在服务器中也有自己的类型),同时还可以解决乱码问题。例如:text/html;charset=UTF-8
content-disposition通过浏览器以附件形式解析正文,例如:attachment;filename=xx.zip
refresh页面刷新,例如:3;url=www.itcast.cn //三秒刷新页面到www.itcast.cn

常见的MIME类型:就是文件在tomcat服务器中的文件类型:

windows tomcat(MIME类型)
超文本标记语言文本 .html text/html ***
xml文档 .xml text/xml
XHTML文档 .xhtml application/xhtml+xml
普通文本 .txt text/plain ***
PDF文档 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG图像 .png image/png **
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg **

  1. 响应体

响应体,就是服务器发送给浏览器的数据。

Response对象

Response继承体系

Snipaste_2024-05-03_15-08-38.png
tomcat定义实现类ResponseFacade门面类对象。底层创建门面类对象
ServletResponse response = new ResponseFacade();
然后将响应对象传递给service doGet doPost方法参数。在方法体中就可以使用响应对象

Response设置响应数据功能介绍

http响应数据总共分为三部分内容,分别是响应行,响应头,响应体

  1. 响应行

Snipaste_2024-05-03_15-17-21.png
设置响应状态码:

void setStatus(int sc);

  1. 响应头

Snipaste_2024-05-03_15-18-06.png
设置响应头键值对:

void setHeader(String name,String value);
响应头:name的值
location 指定响应的路径
content-type:告诉浏览器文件格式,告诉浏览器不要解析html文件(text/plain),解决中文乱码问题 ************
refresh 定时刷新
content-disposition 以附件形式展示图片等资源

  1. 响应体

Snipaste_2024-05-03_15-23-51.png
对于响应体,是通过字符、字节输出流的方式往浏览器写,
获取字节输出流

ServletOutputStream getOutputStream();

获取字符输出流

PrintWriter getWriter();

Response请求重定向

概述

重定向:一种资源跳转方式(服务器外部的)
Snipaste_2024-05-03_15-39-15.png(1)浏览器发送请求给服务器,服务器中对应的资源A接收到请求
(2)资源A现在无法处理该请求,就会给浏览器响应一个302的状态码+location的一个访问资源B的路径
(3)浏览器接收到响应状态码为302就会重新发送请求到location对应的访问地址去访问资源B
(4)资源B接收到请求后进行处理并最终给浏览器响应结果,这整个过程就叫重定向

实现方式

resp.setStatus(302);设置响应状态码是302
resp.setHeader(“location”,“资源B的访问路径”);
或者:
resp.sendRedirect(“资源B的访问路径”);

重定向特点

  • 浏览器地址栏路径发生变化
  • 可以重定向到任何位置的资源(服务器内部,外部均可)
  • 俩次请求,不能在多个资源使用request共享数据

请求重定向和请求转发比较

Snipaste_2024-05-03_15-53-33.png
如果需要在资源之间传递共享request数据,使用请求转发,否则就用重定向

路径问题

规则

  • 浏览器使用:需要加虚拟目录(项目访问路径)
  • 服务端使用:不需要加虚拟目录

对于转发来说,因为是在服务端进行的,所以不需要加虚拟目录
对于重定向来说,路径最终是由浏览器来发送请求,就需要添加虚拟目录。

Response响应字符数据

步骤

  1. 通过Response对象获取字符输入流:PrintWriter writer = resp.getWriter(); 由于获取打印字符流是根据response对象获取的,所以向浏览器打印输出
  2. 通过字符输出流写数据: writer.write(“aaa”);

实现

  1. 返回一个简单的字符串aaa

PrintWriter writer = response.getWriter();
writer.write(“aaa”);

  1. 返回一串html字符串,并且能被浏览器解析

PrintWriter writer = response.getWriter();
//content-type,告诉浏览器返回的数据类型是HTML类型数据,这样浏览器才会解析HTML标签
response.setHeader(“content-type”,“text/html”);
writer.write(“

aaa

”);

  1. 返回一个中文的字符串,需要注意设置响应数据的编码为utf-8

//设置响应的数据格式及数据的编码
response.setContentType(“text/html;charset=utf-8”);
writer.write(“你好”);

:要先设置响应头,然后再用response获取输入流

Response响应字节数据

步骤

  1. 通过Response对象获取字节输出流:ServletOutputStream outputStream = resp.getOutputStream();
  2. 通过字节输出流写数据: outputStream.write(字节数据);

实现

返回一个图片给浏览器

/*** 响应字节数据:设置字节数据的响应体*/
@WebServlet("/resp4")
public class ResponseDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 读取文件FileInputStream fis = new FileInputStream("D:\\abc\\柳岩.jpg");//2. 获取response字节输出流ServletOutputStream os = response.getOutputStream();//3. 完成流的copybyte[] buff = new byte[1024];int len = 0;while ((len = fis.read(buff))!= -1){os.write(buff,0,len);}fis.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

也可以用工具:

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
</dependency>
http://www.yayakq.cn/news/986315/

相关文章:

  • 学会了vue 能搭建一个网站平台微信自带小程序商城
  • 潮州哪里有做网站网网站制作开发
  • 专业做化妆品的网站有哪些网站引导图
  • 做网站的cnfg网站转app免费
  • 如何弄死一个网站电脑课程培训零基础
  • 快速搭建网站 数据存储湖南人文科技学院官网教务系统
  • 付费 视频 网站 怎么做医疗器械监督管理条例
  • 北京网站建设公司价格响应式网站布局实例
  • 前端手机网站网站自己的
  • 网站建设哪家公司好成都网站建设定制公司网站建设
  • 做响应式网站应该注意什么百度seo关键词排名价格
  • pc端网站自适应代码网站开发工程师岗位概要
  • 网站建设作业指导书手机网站被禁止访问怎么打开网页
  • 做网站自动赚钱网络营销课程设置
  • 深圳市南山区住房和建设局网站手机网站如何做才能兼容性各种手机
  • 青岛做网站公网络公司有哪些
  • 中国建设教育网站官方免费成品网站模板
  • 营销类wordpress主题成都搜狗seo
  • 做内贸现在一般都通过哪些网站网站哪家公司做的
  • 建站报价网站开发和小程序开发区别
  • js特效网站展示阿里免费版企业邮箱
  • 官方网站建设维护合作协议wordpress首页文章列表
  • 成都的企业网站建设公司吉祥物设计
  • 专业电子网站建设网站客户端怎么做的
  • 做网站需要注意什么问题成立公司需要什么材料
  • 如何利用社交网站做招聘基于微信的网站开发
  • 教育类手机网站模板wordpress熊掌号提交数据
  • 快餐网站模板网站推广平台怎么做
  • 做化妆刷的外贸网站第三方网站做企业满意度调查
  • 太原做网站的通讯公司赣州网站建设价格