【實習篇】之Http頭部字段之Disposition介紹

Http頭部字段之Disposition

  • Disposition頭部字段介紹
  • RFC規范介紹
  • RFC 6266與RFC 2047

實習的時候公司將一個某個關于下載的Bug交給了我來修,看了代碼和日志后發現是Disposition字段的規范兼容性惹的鍋,因為有些協議使用的是老協議,我們的項目沒有對其進行兼容,最終我閱讀RFC的規范參考Goole瀏覽器的源碼將其解決。

Disposition頭部字段介紹

Content-Disposition 是 HTTP 響應頭(或請求頭)中的一個字段,主要用于 控制客戶端如何處理服務器返回的內容,例如:

  • 是否直接顯示內容(如瀏覽器內嵌顯示 PDF)。
  • 是否強制下載文件(彈出下載對話框)。
  • 指定下載時的默認文件名
  • 語法格式

    Content-Disposition: inline | attachment; filename="filename.ext"
    
    • inline:直接顯示。
    • attachment:強制下載。
    • filename:關鍵參數,文件名。

RFC規范介紹

  1. RFC是什么

    RFC(Request for Comments,征求意見稿) 是一系列由 互聯網工程任務組(IETF, Internet Engineering Task Force) 發布的技術標準文檔,用于定義互聯網協議(如 TCP/IP、HTTP、DNS)、通信規范、API 設計等。RFC 文檔是互聯網基礎設施的核心參考,許多網絡協議和技術的實現都基于它們。

  2. RFC的分類

    類型說明示例
    標準(Standards Track)正式成為互聯網標準,如 TCP/IP、HTTP、SMTP。RFC 793 (TCP)、RFC 9110 (HTTP/1.1)
    實驗性(Experimental)尚未成熟的技術,可能被采納或廢棄。RFC 2324 (HTCPCP,惡搞的“咖啡壺協議”)
    信息性(Informational)提供背景知識,非正式標準。RFC 1855 (網絡禮儀指南)
    歷史性(Historic)已過時的協議或技術。RFC 1149 (IP over Carrier Pigeon)
    最佳實踐(BCP, Best Current Practice)推薦的操作方法,如安全實踐。RFC 6919 (DNSSEC 部署指南)

RFC 6266與RFC 2047

  1. RFC6266: Content-Disposition in HTTP
  • 標題: “Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)”
  • 發布: 2011年6月
  • 狀態: 現行標準(Proposed Standard)
  • 核心作用:標準化HTTP響應頭 Content-Disposition 的用法,用于指示瀏覽器如何處理服務器返回的內容(如直接顯示或下載文件)。

當傳輸的filename是全英文時,使用filename參數直接用ASCII就能表示。

  • 但是如果出現中英文混合,此時就無法表示了,所以它依賴RFC 5987
  1. RFC5987 (Character Set and Language Encoding for HTTP Headers)
  • 作用:RFC6266 使用 RFC5987 定義的 filename* 參數格式來解決非ASCII文件名編碼問題(如中文文件名)。其對非中文使用url encode+utf8轉碼的形式:

    Content-Disposition: attachment; filename*=UTF-8''%E4%B8%AD%E6%96%87.txt
    
  1. RFC2047: MIME Message Header Extensions
  • 標題: “MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text”
  • 發布: 1996年11月
  • 狀態: 現行標準(Proposed Standard)
  • 核心作用:
    擴展電子郵件(MIME)頭部字段,支持非ASCII字符(如中文、日文)的編碼傳輸。

它處理中文的方式是將所有中文字符先轉為Base64,然后加上特定的格式進行分段(如果太長)。

  • 所以我們根據 RFC 2047 規范,對于被分割成多個編碼段的連續文本,必須先合并所有分段內容,再進行整體解碼,這是協議明確規定的強制性要求。
=?UTF-8?B?YW55?= =?UTF-8?B?IGNh?= =?UTF-8?B?cmU=?=

網易郵箱就是使用的RFC2027標準來傳輸下載附件時的filename

Goole源碼參考:如果你想要對上述協議的disposition標準都進行兼容,去模擬瀏覽器作為不同服務器的客戶端,可以參考Goole源碼的解決辦法,它是嚴格按照協議上的規范來處理的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913910.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VM文件管理與Vi/vim操作

[rootlocalhost /]# sudo mkdir /opt [rootlocalhost /]# sudo mkdir /opt/tmp [rootlocalhost /]# sudo touch /opt/tmp/a.txt [rootlocalhost /]# ls /opt/tmp/ a.txt [rootlocalhost /]# 3.步驟1:創建文件并插入日期時間vi /tmp/newfile在vi編輯器中輸入以下命令…

【Android】安卓四大組件之內容提供者(ContentProvider):從基礎到進階

你手機里的通訊錄,存儲了所有聯系人的信息。如果你想把這些聯系人信息分享給其他App,就可以通過ContentProvider來實現。。 一、什么是 ContentProvider ?ContentProvider? 是 Android 四大組件之一,負責實現?跨應用程序的數據共享與訪問…

Vue-19-前端框架Vue之應用基礎組件通信(二)

文章目錄 1 v-model(父子相傳)1.1 App.vue1.2 Father.vue1.2.1 v-model用在html標簽上1.2.2 v-model用在html標簽上(本質寫法)1.2.3 v-model用在組件標簽上1.2.4 v-model用在組件標簽上(本質寫法)1.3 MyInput(自定義的組件)1.4 修改modelValue1.4.1 Father.vue1.4.2 MyInput.vu…

寶塔下載pgsql適配spring ai

1.寶塔安裝pgvector 1.先去github下載pgvectorpgvector/pgvector: Open-source vector similarity search for Postgres 2.把壓縮包上傳到系統文件的/temp下解壓,重命名文件名為pgvector,之后命令操作 cd /tmp cd pgvector export PG_CONFIG/www/serv…

RK3568項目(八)--linux驅動開發之基礎外設(上)

目錄 一、引言 二、準備工作 ------>2.1、驅動加載/卸載命令 三、字符設備驅動開發 ------>3.1、驅動模塊的加載和卸載 ------>3.2、外部模塊編譯模板 Makefile ------>3.3、cdev 四、LED驅動 ------>4.1、原理圖 ------>4.2、驅動 五、設備樹 -…

BUUCTF在線評測-練習場-WebCTF習題[GXYCTF2019]BabySQli1-flag獲取、解析

解題思路打開靶場,題目提示是sql注入輸入數據,判斷下閉合11123報錯:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 1 at line 1報錯提示…

“AI 曼哈頓計劃”:科技競賽還是人類挑戰?

美國國會下屬的經濟與安全審查委員會已將“推動建立并資助一項堪比曼哈頓計劃的通用人工智能研發項目”列為其對國會的核心建議之一,明確顯示出對AI競賽戰略意義的高度重視。與此同時,美國能源部在近幾個月中多次公開將人工智能的突破比作“下一場曼哈頓…

音頻信號的預加重:提升語音清晰度

一、預加重介紹預加重是一種信號處理技術,主要用于增強音頻信號中的高頻成分。由于人類語音的頻譜特性,尤其是在輔音和音調的表達上,高頻成分對于語音的清晰度至關重要。然而,在錄音和傳輸過程中,這些高頻成分往往會受…

WebSocket實戰:實現實時聊天應用 - 雙向通信技術詳解

目錄一、WebSocket:實時通信的"高速公路"1.1 HTTP的短板:永遠的"單相思"1.2 WebSocket的優勢:真正的"雙向對話"二、30分鐘搭建聊天服務器2.1 環境準備2.2 WebSocket配置類2.3 核心消息處理器三、前端實現&…

宏集案例 | 基于CODESYS的自動化控制系統,開放架構 × 高度集成 × 遠程運維

??案例概況客戶:MACS Sterilisationsanlagen GmbH(Ermafa Environmental Technologies GmbH 旗下) 應用場景:醫療與感染性廢棄物的無害化處理控制系統應用產品:宏集Berghof高性能控制器設備(一&#xff0…

學習JNI 二

創建一個名為Learn1項目(Android Studio)。一、項目結構二、配置 build.gradlebuild.gradle.kts(:app)plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android) }android {namespace "com.demo.learn1&quo…

基于Spring Boot+Vue的DIY手工社預約管理系統(Echarts圖形化、騰訊地圖API)

2.10 視頻課程管理功能實現2.11手工互動(視頻彈幕)2.8預約設置管理功能實現🎈系統亮點:Echarts圖形化、騰訊地圖API;文檔包含功能結構圖、系統架構圖、用例圖、實體屬性圖、E-R圖。一.系統開發工具與環境搭建1.系統設計…

leetcode 每日一題 1353. 最多可以參加的會議數目

更多技術訪問 我的個人網站 (免費服務器,沒有80/443端口) 1353. 最多可以參加的會議數目 給你一個數組 events,其中 events[i] [startDayi, endDayi] ,表示會議 i 開始于 startDayi ,結束于 endDayi 。 …

AI+智慧園區 | 事件處置自動化——大模型重構園區治理邏輯

在智慧園區的建設浪潮中,事件管理一直是園區高效運營的關鍵環節。考拉悠然所推出的大模型 智慧園區解決方案,在事件智能閉環管理方面獨樹一幟,為園區的日常運營編織了一張嚴密、高效、智能的管理網絡,實現了從事件感知到處置的全…

FFmpeg Windows安裝

FFmpeg 用于音頻文件轉換 Builds - CODEX FFMPEG gyan.dev ffmpeg-release-full.7z 下載完成之后 zip解壓 大概就是 ffmpeg/ └── bin/ └── ffmpeg.exe 配置環境變量 ffmpeg -version 有可能idea還是找不到命令 就把命令路徑寫在程序里 例如

【2025/07/10】GitHub 今日熱門項目

GitHub 今日熱門項目 🚀 每日精選優質開源項目 | 發現優質開源項目,跟上技術發展趨勢 📋 報告概覽 📊 統計項📈 數值📝 說明📅 報告日期2025-07-10 (周四)GitHub Trending 每日快照&#x1f55…

JVM 基礎 - JVM 內存結構

前言 本文主要對JVM 內存結構進行講解,注意不要和Java內存模型混淆了。 運行時數據區 內存是非常重要的系統資源,是硬盤和 CPU 的中間倉庫及橋梁,承載著操作系統和應用程序的實時運行。JVM 內存布局規定了 Java 在運行過程中內存申請、分配…

【案例】二手車交易價格預測-472

二手車交易價格預測 數據來源數據特征探索構建模型參考數據來源 天池 https://tianchi.aliyun.com/competition/entrance/231784/information 數據特征探索 目標特征工程做好之后,能同時進行 lightgbm catboost 神經網絡等模型,所以盡量都轉換為數值類特征。 如果僅僅是使用…

【Spring】Java SPI機制及Spring Boot使用實例

目錄 一、SPI是什么 1.1 SPI 和 API 有什么區別? 二、使用場景 三、使用介紹 四、Spring Boot實例運用 五、總結 一、SPI是什么 SPI全稱Service Provider Interface,是Java提供的一套用來被第三方實現或者擴展的API,它可以用來啟用框架…

多維度數據資產測繪技術在安全管控平臺中的應用實踐

一、數據資產治理困境:從 “黑箱” 到 “可見性” 的行業挑戰在數字化轉型加速的當下,企業數據資產呈現爆發式增長,而傳統資產梳理手段因維度單一、時效性差,導致 “資產黑箱” 問題頻發。某省級運營商曾在安全評估中發現&#xf…