0Pricing
Browser Extensions Development (Chrome & Edge) · Pelajaran

Mengubah Header Permintaan

Terapkan aturan untuk mengubah header permintaan HTTP, sehingga Anda dapat menyesuaikan perilaku atau autentikasi pada permintaan keluar.

Mengubah Header Permintaan adalah pelajaran Browser Extensions Development (Chrome & Edge) gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Browser Extensions Development (Chrome & Edge), dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Browser Extensions Development (Chrome & Edge) mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

What are Request Headers?

When your browser talks to a website, it sends messages called HTTP requests. These requests carry extra info, like metadata, in something called headers.

Headers tell the server things like what browser you're using (User-Agent), what kind of content you expect (Accept), or even authentication tokens (Authorization).

Efficient Header Control

We learned about declarativeNetRequest for blocking and redirecting. It's powerful because it lets the browser handle rules efficiently, without your extension's JavaScript always running.

Today, we'll use it to modify these request headers, adding, changing, or removing them before a request even leaves your browser!

Introducing `modifyHeaders`

To change headers, we use a specific actionType within our declarativeNetRequest rules: "modifyHeaders".

This action takes an array of requestHeaders. Each item in this array describes a single header modification you want to make.

Header Operations Explained

For each header modification, you specify an operation:

  • "set": Replaces an existing header's value or adds it if it doesn't exist.
  • "append": Adds a new value to a header. If the header already exists, it will have multiple values. If not, it adds it.
  • "remove": Deletes a header entirely from the request.

Essential Permissions

To use declarativeNetRequest for header modification, your extension needs specific permissions in its manifest.json file:

  • "declarativeNetRequest": The basic permission to use the API.
  • "declarativeNetRequestWithHostAccess": Needed if your rules modify headers on specific websites (hosts). This is usually the case!

Add a Custom Header

Let's add a custom header called X-CoddyKit-User to all outgoing requests. This could be useful for identifying requests from your extension.

This code goes into your extension's background.js file.

chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: [1],
  addRules: [{
    id: 1,
    priority: 1,
    action: {
      type: "modifyHeaders",
      requestHeaders: [{
        header: "X-CoddyKit-User",
        operation: "set",
        value: "CoddyKitStudent"
      }]
    },
    condition: {
      urlFilter: "<all_urls>",
      resourceTypes: ["main_frame", "sub_frame", "xmlhttprequest"]
    }
  }]
});
// In a real extension, this runs once on install/update.
// You'd observe the header in your browser's DevTools Network tab.

Dissecting the Rule

The code uses chrome.declarativeNetRequest.updateDynamicRules to manage rules. Here's a quick breakdown:

  • id: A unique number for your rule.
  • priority: Determines which rule wins if multiple rules apply.
  • action: Defines what to do. Here, "modifyHeaders" with our requestHeaders.
  • condition: Specifies when the rule applies (e.g., <all_urls> for everywhere).

Change the User-Agent

You can use "set" to change standard headers too. Here, we'll modify the User-Agent header for requests going to example.com. This spoofs your browser's identity for that site.

chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: [2],
  addRules: [{
    id: 2,
    priority: 1,
    action: {
      type: "modifyHeaders",
      requestHeaders: [{
        header: "User-Agent",
        operation: "set",
        value: "CoddyKitBrowser/1.0 (Extension)"
      }]
    },
    condition: {
      urlFilter: "*://example.com/*",
      resourceTypes: ["main_frame", "sub_frame"]
    }
  }]
});
// This rule would change the User-Agent for example.com.

Remove a Header

Sometimes, you might want to remove a header for privacy or to prevent certain tracking. Let's remove the Referer header for all image requests.

The Referer header tells a website where you came from.

chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: [3],
  addRules: [{
    id: 3,
    priority: 1,
    action: {
      type: "modifyHeaders",
      requestHeaders: [{
        header: "Referer",
        operation: "remove"
      }]
    },
    condition: {
      urlFilter: "<all_urls>",
      resourceTypes: ["image"]
    }
  }]
});
// This rule would remove the Referer header for image requests.

Quick Check: Header Operations

You want to add an API key as a custom header, X-API-Key, to a request. If the header somehow already exists, you want to make sure your key is also present, possibly as a second value, rather than replacing an existing one.

Recap & Next Steps

Great job! You've learned how to powerfully modify HTTP request headers using declarativeNetRequest.

  • We explored the "modifyHeaders" action.
  • Understood the "set", "append", and "remove" operations.
  • Saw how to add custom headers, change user agents, and remove sensitive info.
  • Remember the necessary permissions: declarativeNetRequest and declarativeNetRequestWithHostAccess.

Next, we'll dive into redirecting and rewriting URLs!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengubah Header Permintaan” gratis?

Ya — teks lengkap “Mengubah Header Permintaan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Browser Extensions Development (Chrome & Edge), upgrade ke CoddyKit PRO. Kursus Browser Extensions Development (Chrome & Edge) mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengubah Header Permintaan”?

Terapkan aturan untuk mengubah header permintaan HTTP, sehingga Anda dapat menyesuaikan perilaku atau autentikasi pada permintaan keluar. Kamu berlatih Browser Extensions Development (Chrome & Edge) dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Browser Extensions Development (Chrome & Edge)?

Tidak diperlukan pengalaman sebelumnya. Browser Extensions Development (Chrome & Edge) di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Mengubah Header Permintaan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Browser Extensions Development (Chrome & Edge) ini?

Ya. Setiap pelajaran Browser Extensions Development (Chrome & Edge) menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memblokir Permintaan Jaringan
  2. Mengubah Header Permintaan
  3. Mengalihkan dan Menulis Ulang URL
  4. Aturan Dinamis dan Penelusuran Kesalahan declarativeNetRequest
← Kembali ke Browser Extensions Development (Chrome & Edge)