一、ABNF
1.什么是 ABNF?(了解)

ABNF
2. ABNF 的格式如何?(理解即可)

ABNF01

request-line / status-line

header-filed / message-body
3. URL 中如果出現(xiàn)特殊字符(中文字符或空格),要怎么處理?瀏覽器的默認(rèn)處理是什么?(重要)

編碼
4. 使用 Xshell + telnet 可以面向報(bào)文觀察 HTTP。(了解)

Xshell
二、請(qǐng)求頭字段
1. GET、POST、HEAD 請(qǐng)求各自的特點(diǎn)和適用場(chǎng)景?(重要)

適用場(chǎng)景說明
2. 什么是盜鏈?什么是防盜鏈?通過那個(gè)請(qǐng)求頭可以防盜鏈?(重要、待實(shí)踐)
盜鏈:就是在自己的網(wǎng)站上,盜用其他服務(wù)器的圖片資源,展示到自己的網(wǎng)站上。
防盜鏈:就是防止非自己的網(wǎng)站,訪問自己服務(wù)器的公開圖片資源。
請(qǐng)求頭字段: 可以通過 Referer 請(qǐng)求頭字段來防盜鏈
3. 如果我們需要下載一個(gè)大文件,需要實(shí)現(xiàn)多線程下載和斷點(diǎn)下載,需要依靠請(qǐng)求頭的哪個(gè)字段?

image.png
4. 常見請(qǐng)求頭字段(要認(rèn)識(shí),以及知道作用)

image.png

image.png

image.png
三、響應(yīng)頭字段
1. 常見響應(yīng)頭字段?(要認(rèn)識(shí),以及知道作用)

image.png

image.png
2. Content-Type 的作用?(實(shí)踐 + 重要)
response.setContentType("text/html;charset=utf-8");
- ①可以設(shè)定服務(wù)器返回的編碼
charset=utf-8,這樣防止亂碼 - ②告訴客戶端,服務(wù)器返回的是格式
text/html
3. Content-Disposition 的作用?(實(shí)踐 + 重要)
@WebServlet("/download")
public class DownloadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain; charset=UTF8");
response.setHeader("Content-Disposition","attachment; filename=\"download.txt\"");
response.getWriter().write("這是我的大文件");
}
}
-
response.setHeader("Content-Disposition","attachment; filename=\"download.txt\"");可以讓瀏覽器以下載的方式,去下載服務(wù)端返回的數(shù)據(jù)。