Http字段含义

本文详细介绍了HTTP请求与响应头的基本概念,包括常见的请求头如Accept、Cookie等,以及响应头如Content-Type、Set-Cookie等,并解释了它们的作用及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、request请求Header简介

Accept:--客户机支持的类型
Accept-Charset:--采用的编码类型
Accept-Encoding:--客户机支持的数据压缩格式
Accept-Language:--客户机语言环境
Host:--想访问的主机名
If-Modified-Since:--资源缓存到客户机的时间
Referer:--跳转来源(跳到此网页所点击的连接,主要用于防盗链)
User-Agent:--客户机的软件环境(操作系统版本,浏览器版本)
Cookie:--从客户机传数据
Connection:--请求完之后是否关闭连接
Date:--请求时间
Range:--说明只请求服务器资源的一部分 bytes=1000- 表示获取1000字符之后的数据
 
   //获取请求资源的url
    URL url = new URL("http://localhost:8080/day04_web/test.txt");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    //声明只传输6之后的资源
    con.setRequestProperty("Range", "bytes=6-");
    //资源写入文件
    InputStream in = con.getInputStream();
    FileOutputStream fo = new FileOutputStream("D:\\test.txt",true);
    int len =0;
    byte[] buff = new byte[1024];
    while((len=in.read(buff))>0){
        fo.write(buff, 0, len);
    }
    in.close();
    fo.close();

二、response响应Header

状态行:--处理结果,返回状态码
    //状态码
    100~199 表示请求成功,要求客户机继续提交下一次请求才能完成整个处理过程
    200~299 表示请求成功并完成整个处理过程,常用200
    300~399 为完成请求,客户机需进一步细化请求,例如请求的资源已经移动到一个新地址,
            常用302(请求其他资源,结合location使用)、304(取缓存)、307(取缓存)
    400~499 客户端的请求有错误,常见404(不存在),403(无权限)
    500~599 服务器端出现错误,常见500
    //下面两行代码可以重定向到tt.html中
    response.setStatus(302);
    response.setHeader("location", "tt.html");

Server:--服务器类型
Content-Encoding:--服务器回送数据的压缩格式

Content-Lengtg:--服务器回送数据的长度

 String data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    System.out.println("===" + data.length());
    // 通过gzip压缩,压缩结果放到 ByteArrayOutputStream
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    GZIPOutputStream gout = new GZIPOutputStream(out);
    gout.write(data.getBytes());
    gout.close();
    byte[] gByte = out.toByteArray();// 压缩后的数据
    System.out.println("==" + gByte.length);
    // 通知浏览器数据压缩格式
    response.setHeader("Content-Encoding", "gzip");
    response.setHeader("Content-Length", "" + gByte.length);
    ServletOutputStream wirte = response.getOutputStream();
    wirte.write(gByte);

Content-Type:--服务器回送数据的类型

//设置返回数据的类型
    response.setHeader("Content-Type", "image/x-icon");
    InputStream in = this.getServletContext().getResourceAsStream("/baidu.ico");
    ServletOutputStream write = response.getOutputStream();
    int len = 0;
    byte buff[] = new byte[1024];
    while((len = in.read(buff))>0){
        write.write(buff, 0, len);
    }
    in.close();
    write.flush();
    write.close();
Last-Modified:--当前资源的最后缓存时间
Refresh:--告诉浏览器多长时间刷新一次
   //10秒时候跳到百度
    response.setHeader("refresh", "10;url='http://www.baidu.com'");
    String data ="Search !";
    response.getOutputStream().write(data.getBytes());
Content-Disposition:--告诉浏览器以下载方式打开数据(例如:attachment;filename=3.ico)
Transfer-Encoding:--告诉浏览器数据的传送格式
Set-Cookie:--
ETag:--缓存相关的
Expires:--告诉浏览器把会送的资源缓存多长时间(0、-1表示不缓存)
Catch-Control:no-catche --告诉浏览器不要缓存数据
Pragma:no-catch --告诉浏览器不要缓存数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值