
如下样例代码, 返回网站首页HTML内容
java
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Controller;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.Objects;
@Controller
@RequestMapping
public class FrontController {
@ResponseBody
@GetMapping("/")
public void store(HttpServletRequest request) {
String homePage = "http://t.infuq.com/data/static/sniff.html";
/** http://t.infuq.com/data/static/sniff.html 内容如下
<!--
2025.10.22
-->
<!DOCTYPE html>
<html lang>
<head>
<meta charset="utf-8">
<title>MyTitle</title>
</head>
<body>
<p>https://www.infuq.com http://t.infuq.com</p>
</body>
</html>
*/
read(homePage);
}
private void read(String url) {
InputStream in = ResourceUtils.getURL(url).openStream();
HttpServletResponse response = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getResponse();
IOUtils.copy(in, response.getOutputStream());
}
}
当通过 Chrome 或 Microsoft Edge 访问时可以正常显示内容如下

但是通过火狐浏览器访问时, 却显示了源码

查看响应头信息

服务端没有返回Content-Type, 火狐浏览器(64位 v144.0)通过嗅探能力, 判断该文件是text/plain文件, 而 Chrome 等浏览器会把该文件识别成text/html文件.
【解决】
1.在服务端指定响应Content-Type
response.setContentType("text/html");
2.将HTML源码顶部的注释去掉
html
把
<!--
2025.10.22
-->
<!DOCTYPE html>
<html lang>
<head>
<meta charset="utf-8">
<title>MyTitle</title>
</head>
<body>
<p>https://www.infuq.com http://t.infuq.com</p>
</body>
</html>
改成
<!DOCTYPE html>
<html lang>
<head>
<meta charset="utf-8">
<title>MyTitle</title>
</head>
<body>
<p>https://www.infuq.com http://t.infuq.com</p>
</body>
</html>
https://source.chromium.org/chromium/chromium/src/+/refs/tags/118.0.5981.4:net/base/mime_sniffer.cc