zoukankan      html  css  js  c++  java
  • Content-Type伪装

    一、前期理论准备

    1)目的:
     在jsp中动态生成css语句,然后输出给浏览器解析、渲染。
    2)浏览器解析文件的依据:
     页面加载后,浏览器会发起各个请求去下载各种资源。
     比如下载css文件,然后根据css的解析规则去解析文档。而如果下载的文件Content-Type不符合,则浏览器会自动屏蔽掉。

    正常的css请求头

    二、让jsp变身css的前提

    知道浏览器的解析规则后,jsp需要做的就是把自己的Content-Type伪装成"text/css"。

    三、直接上代码:

    index.html

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <title>jsp文件输出为css文件</title>
    <link type="text/css" rel="stylesheet" href="./css.jsp" />
    </head>
    <body>
    	<p class="demo">wall say: hello!</p>
    </body>
    </html>
    

    css.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%>
    <%
    	// 伪装响应的http头部
    	response.setHeader("Content-Type", "text/css");
    	
    	// 输出css样式
    	out.clear();
    	out.print("@charset "utf-8";
    ");
    	out.print("p{color:red;}
    ");
    %>
    

    四、结果



    成功将jsp伪装成css文件,浏览器解析样式成功!

    五、扩展

    根据这种伪装规则,可以将jsp伪装成任意的文件格式,只要浏览器能够解析。
    比如伪装成js,则将Content-Type设置为“application/x-javascript”

    上个传送门:HTTP Content-Type信息表

    原文入口:'http://www.jianshu.com/p/33582cb0b488'

  • 相关阅读:
    Feli的生日礼物
    session cookie
    ArcGIS FLEXnet Licensing error:96,491错误解决
    CSS块元素与内联元素(转)
    铝伯世
    netsh修改IP及DNS

    JAVA代码查错(转)
    windows7查看占用端口的进程
    php 中文字符串截取子串
  • 原文地址:https://www.cnblogs.com/walls/p/6266349.html
Copyright © 2011-2022 走看看