# headers

Published articles for headers.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Introducing the J2sw MTU and Encapsulation Calculator

DevFeed: [Introducing the J2sw MTU and Encapsulation Calculator](<https://devfeed.tech/articles/introducing-the-j2sw-mtu-and-encapsulation-calculator-40186.md>)

Original publisher: [Read original article](<https://blog.j2sw.com/resources/mtu-encapsulation-calculator/>)

Author: j2sw

Published: 2026-07-28T16:37:53Z

Content type: tutorial

Language: en

Sources: [Justin Wilson (j2sw)](<https://devfeed.tech/sources/justin-wilson-j2sw.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>), [VXLAN](<https://devfeed.tech/topics/vxlan.md>)

Tags: [calculator](<https://devfeed.tech/tags/calculator.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [gre](<https://devfeed.tech/tags/gre.md>), [headers](<https://devfeed.tech/tags/headers.md>), [ipsec](<https://devfeed.tech/tags/ipsec.md>), [ipv4](<https://devfeed.tech/tags/ipv4.md>), [ipv6](<https://devfeed.tech/tags/ipv6.md>), [juniper](<https://devfeed.tech/tags/juniper.md>), [mikrotik](<https://devfeed.tech/tags/mikrotik.md>), [mpls](<https://devfeed.tech/tags/mpls.md>), [mtu](<https://devfeed.tech/tags/mtu.md>), [network-engineering-resources](<https://devfeed.tech/tags/network-engineering-resources.md>), [network-tools](<https://devfeed.tech/tags/network-tools.md>), [network-troubleshooting](<https://devfeed.tech/tags/network-troubleshooting.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [payload](<https://devfeed.tech/tags/payload.md>), [pppoe](<https://devfeed.tech/tags/pppoe.md>), [vlan](<https://devfeed.tech/tags/vlan.md>), [vxlan](<https://devfeed.tech/tags/vxlan.md>)

### AI overview

The article introduces the J2SW MTU and Encapsulation Calculator, which estimates inner IP MTU and required underlay MTU for combinations of PPPoE, GRE, VLAN, MPLS, VXLAN, and other encapsulations. It explains how Layer 2 tags affect Ethernet frame size separately from IP MTU and describes overhead calculations, including cases where fragmentation can be avoided.

### Source excerpt

Ever wondered what the effects of different combinations of PPPoE, GRE, and others have on the MTU of a packet? I am excited to announce the first of many J2 Network tools: the J2SW MTU and Encapsulation Calculator. You select the service MTU and the encapsulation used on the path. The calculator then works out ... Read more The post Introducing the J2sw MTU and Encapsulation Calculator appeared first on Justin Wilson (j2sw).

## Why cURL is a practical debugger for HTTP problems

DevFeed: [Why cURL is a practical debugger for HTTP problems](<https://devfeed.tech/articles/a-love-letter-to-curl-the-world-s-most-underrated-debugger-38794.md>)

Original publisher: [Read original article](<https://fidelitas.io/2026/05/a-love-letter-to-curl/>)

Author: fidelitas.io

Published: 2026-05-17T08:15:00Z

Content type: opinion

Language: en

Sources: [fidelitas.io](<https://devfeed.tech/sources/fidelitas-io.md>)

Topics: [cURL](<https://devfeed.tech/topics/curl.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [curl](<https://devfeed.tech/tags/curl.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [headers](<https://devfeed.tech/tags/headers.md>), [http](<https://devfeed.tech/tags/http.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [unix](<https://devfeed.tech/tags/unix.md>)

### AI overview

This opinionated developer article argues that cURL is especially useful for debugging HTTP problems in production and remote environments where graphical clients may be unavailable. It contrasts cURL's debugging role with GUI clients' strengths in exploration, sharing, onboarding, and code generation, and introduces commonly useful command-line flags.

### Source excerpt

Postman is great. Insomnia is great. But the moment something goes wrong in production, the tool I reach for first is the one that's been on every Unix box since 1996.

## HTTP RateLimit headers

DevFeed: [HTTP RateLimit headers](<https://devfeed.tech/articles/http-ratelimit-headers-36227.md>)

Original publisher: [Read original article](<https://dotat.at/@/2026-01-13-http-ratelimit.html>)

Published: 2026-01-14T02:34:22Z

Content type: article

Language: en

Sources: [Tony Finch's blog](<https://devfeed.tech/sources/tony-finch-s-blog.md>)

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Internet Engineering Task Force (IETF)](<https://devfeed.tech/topics/ietf.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [client](<https://devfeed.tech/tags/client.md>), [headers](<https://devfeed.tech/tags/headers.md>), [http](<https://devfeed.tech/tags/http.md>), [ietf](<https://devfeed.tech/tags/ietf.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

The article examines the IETF draft for HTTP RateLimit headers and argues that the headers can support linear rate-limit algorithms such as GCRA, encouraging smoother client request behavior than quota-reset algorithms.

### Source excerpt

There is an IETF draft that aims to standardize RateLimit header fields for HTTP. A RateLimit header in a successful response can inform a client when it might expect to be throttled, so it can avoid 429 Too Many Requests errors. Servers can also include RateLimit headers in a 429 response to make the error more informative. The draft is in reasonably good shape. However as written it seems to require (or at least it assumes) that the server uses bad quota-reset rate limit algorithms. Quota-reset algorithms encourage clients into cyclic burst-pause behaviour; the draft has several paragraphs discussing this problem. However, if we consider that RateLimit headers are supposed to tell the client what acceptable behaviour looks like, they can be used with any rate limit algorithm. (And it isn't too hard to rephrase the draft so that it is written in terms of client behaviour instead of server behaviour.) When a client has more work to do than will fit in a single window's quota, linear rate limit algorithms such as GCRA encourage the client to smooth out its requests nicely. In this article I'll describe how a server can use a linear rate limit algorithm with HTTP RateLimit headers. spec summary policy parameters linear rate limit algorithm other rate limiters spec summary The draft specifies two headers: RateLimit-Policy: describes input parameters to a rate limit algorithm, which the server chooses based on the request in some unspecified way. The policies are expected to be largely static for a particular client. The parameters are, the name of the policy pk, the partition key q, the quota w, the window qu, the quota units RateLimit: describes which policies the server applied to this request, and the output results of the rate limit algorithm. The results are likely to vary per request depending on client behaviour or server load, etc. The results are, the name of the policy pk, the partition key r, the available quota t, the effective window Both headers can list

## Keycloak 26.4.7 released

DevFeed: [Keycloak 26.4.7 released](<https://devfeed.tech/articles/keycloak-26-4-7-released-31740.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/12/keycloak-2647-released>)

Author: Keycloak Team

Published: 2025-12-01T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Quarkus](<https://devfeed.tech/topics/quarkus.md>), [saml](<https://devfeed.tech/topics/saml.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [headers](<https://devfeed.tech/tags/headers.md>), [idm](<https://devfeed.tech/tags/idm.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [quarkus](<https://devfeed.tech/tags/quarkus.md>), [release](<https://devfeed.tech/tags/release.md>), [resolved](<https://devfeed.tech/tags/resolved.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

Keycloak 26.4.7 is released with documentation and Quarkus 3.27.1 upgrades, plus fixes for SAML initialization errors and persistent group permissions during concurrent membership changes.

### Source excerpt

To download the release go to Keycloak downloads. Upgrading Before upgrading refer to the migration guide for a complete list of changes. All resolved issues Enhancements #43156 [Docs] Warn users about printing headers in HTTP access logs docs #43643 Upgrade to Quarkus 3.27.1 dist/quarkus Bugs #44438 Intermittent ConcurrentModificationException during SAML initialization causing status code 400 for clients saml #44480 Wrong persistent group permissions when multiple group membership changes happen in the same request core

## HTML Tables with Horizontal Scroll and Sticky Headers

DevFeed: [HTML Tables with Horizontal Scroll and Sticky Headers](<https://devfeed.tech/articles/html-tables-with-horizontal-scroll-and-sticky-headers-37593.md>)

Original publisher: [Read original article](<https://www.taniarascia.com/horizontal-scroll-fixed-headers-table/>)

Author: hello@taniarascia.com

Published: 2024-10-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tania Rascia](<https://devfeed.tech/sources/tania-rascia.md>)

Topics: [HTML](<https://devfeed.tech/topics/html.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>)

Tags: [container](<https://devfeed.tech/tags/container.md>), [css](<https://devfeed.tech/tags/css.md>), [design](<https://devfeed.tech/tags/design.md>), [dockerignore-usage](<https://devfeed.tech/tags/dockerignore-usage.md>), [example](<https://devfeed.tech/tags/example.md>), [headers](<https://devfeed.tech/tags/headers.md>), [helps](<https://devfeed.tech/tags/helps.md>), [html](<https://devfeed.tech/tags/html.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [table](<https://devfeed.tech/tags/table.md>), [tables](<https://devfeed.tech/tags/tables.md>)

### AI overview

A tutorial on building HTML tables that support horizontal scrolling and sticky headers. It explains why sticky positioning can fail inside an overflow container and presents a table-wrapper height as the solution, producing a vertically and horizontally scrollable datagrid-style view.

### Source excerpt

Turns out, creating an HTML table that has both horizontal scroll and fixed headers can be a tricky problem. As another developer said about...

## How to Add a Header to a curl Request

DevFeed: [How to Add a Header to a curl Request](<https://devfeed.tech/articles/how-to-add-a-header-to-a-curl-request-37476.md>)

Original publisher: [Read original article](<https://davidwalsh.name/curl-add-header>)

Author: David Walsh

Published: 2024-08-03T16:51:46Z

Content type: tutorial

Language: en

Sources: [David Walsh](<https://devfeed.tech/sources/david-walsh.md>)

Topics: [cURL](<https://devfeed.tech/topics/curl.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [curl](<https://devfeed.tech/tags/curl.md>), [headers](<https://devfeed.tech/tags/headers.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [quick-tips](<https://devfeed.tech/tags/quick-tips.md>), [quick-tips-shell](<https://devfeed.tech/tags/quick-tips-shell.md>), [request](<https://devfeed.tech/tags/request.md>), [shell](<https://devfeed.tech/tags/shell.md>)

### AI overview

A tutorial explaining how to add one or more HTTP headers to a curl request using the -H flag, with context about curl's use for downloading files and testing APIs.

### Source excerpt

curl is one of those great utilities that's been around seemingly forever and has endless use cases. These days I find myself using curl to batch download files and test APIs. Sometimes my testing leads me to using different HTTP headers in my requests. To add a header to a curl request, use the -H [...] The post How to Add a Header to a curl Request appeared first on David Walsh Blog.

## Serving it plain: Release Recap August 2023

DevFeed: [Serving it plain: Release Recap August 2023](<https://devfeed.tech/articles/serving-it-plain-release-recap-august-2023-31214.md>)

Original publisher: [Read original article](<https://tailscale.dev/blog/serve-plain-release-recap-aug-2023>)

Author: Parker Higgins

Published: 2023-08-01T00:00:00Z

Content type: release

Language: en

Sources: [Tailscale Community](<https://devfeed.tech/sources/tailscale-community.md>)

Topics: [tailscale](<https://devfeed.tech/topics/tailscale.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [headers](<https://devfeed.tech/tags/headers.md>), [http](<https://devfeed.tech/tags/http.md>), [identity](<https://devfeed.tech/tags/identity.md>), [ios](<https://devfeed.tech/tags/ios.md>), [redesign](<https://devfeed.tech/tags/redesign.md>), [release](<https://devfeed.tech/tags/release.md>), [release-recap](<https://devfeed.tech/tags/release-recap.md>), [serve](<https://devfeed.tech/tags/serve.md>), [tailscale](<https://devfeed.tech/tags/tailscale.md>), [tailscale-serve](<https://devfeed.tech/tags/tailscale-serve.md>)

### AI overview

Tailscale's August 2023 Release Recap covers Tailscale Serve over plain HTTP, identity headers, and an iOS redesign.

### Source excerpt

Tailscale Serve over plain HTTP, identity headers, and an iOS redesign in this month's Release Recap.

## Tapping into Tailscale's identity headers with Serve

DevFeed: [Tapping into Tailscale's identity headers with Serve](<https://devfeed.tech/articles/tapping-into-tailscale-s-identity-headers-with-serve-31210.md>)

Original publisher: [Read original article](<https://tailscale.dev/blog/id-headers-tailscale-serve-flask>)

Author: Parker Higgins, Sonia Appasamy

Published: 2023-07-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tailscale Community](<https://devfeed.tech/sources/tailscale-community.md>)

Topics: [tailscale](<https://devfeed.tech/topics/tailscale.md>), [proxy](<https://devfeed.tech/topics/proxy.md>)

Tags: [content](<https://devfeed.tech/tags/content.md>), [flask](<https://devfeed.tech/tags/flask.md>), [funnel](<https://devfeed.tech/tags/funnel.md>), [headers](<https://devfeed.tech/tags/headers.md>), [identity](<https://devfeed.tech/tags/identity.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [python](<https://devfeed.tech/tags/python.md>), [serve](<https://devfeed.tech/tags/serve.md>), [tailscale](<https://devfeed.tech/tags/tailscale.md>), [tailscale-serve](<https://devfeed.tech/tags/tailscale-serve.md>)

### AI overview

This tutorial explains how to use identity headers from Tailscale Serve when proxying requests, allowing an application to change the content it serves.

### Source excerpt

When you use Tailscale serve to proxy requests, you can use its identity headers to change what content you serve.

## Uploading files using 'fetch' and 'FormData'

DevFeed: [Uploading files using 'fetch' and 'FormData'](<https://devfeed.tech/articles/uploading-files-using-fetch-and-formdata-37369.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/uploading-files-using-fetch-multipart-form-data/>)

Author: Stanko

Published: 2018-03-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [fetch](<https://devfeed.tech/topics/fetch.md>), [API](<https://devfeed.tech/topics/api.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [browser](<https://devfeed.tech/tags/browser.md>), [fetch](<https://devfeed.tech/tags/fetch.md>), [form](<https://devfeed.tech/tags/form.md>), [headers](<https://devfeed.tech/tags/headers.md>), [json](<https://devfeed.tech/tags/json.md>), [request](<https://devfeed.tech/tags/request.md>)

### AI overview

This tutorial explains how to upload files with fetch and FormData. It shows that the request should not manually set the Content-Type header, allowing the browser to add the multipart boundary required for the server to parse the uploaded file correctly.

### Source excerpt

Today I learned: To upload files using fetch and FormDataFormData is supported in IE10+. you must not set Content-Type header. const fileInput = document.querySelector('#your-file-input') ; const formData = new FormData(); formData.append('file', fileInput.files[0]); const options = { method: 'POST', body: formData, // If you add this, upload won't work // headers: { // 'Content-Type': 'multipart/form-data', // } }; fetch('your-upload-url', options); Problem I had # My API wrapper class has default content type header set to: 'Content-Type': 'application/json' So I thought, to upload files using FormData, it would be enough to override it with: 'Content-Type': 'multipart/form-data' But alas, it didn't work, server couldn't parse the files I was uploading. I've wasted about half an hour, and then noticed that simple HTML form was setting something else: Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryIn312MOjBWdkffIM It had this boundary thing I didn't know anything about. Then I started searching around the internet and found the solution. To set the correct boundary, I had to explicitly delete Content-Type header. In that case browser will set the correct boundary itself. Adding this line solved it. // Remove 'Content-Type' header to allow browser to add // along with the correct 'boundary' delete options.headers['Content-Type']; Explanation # What is boundary and why I had to delete the header? Multipart form allow transfer of binary data, therefore server needs a way to know where one field's data ends and where the next one starts. That's where boundary comes in. It defines a delimiter between fields we are sending in our request (similar to & for GET requests). You can define it yourself, but it is much easier to let browser do it for you. Example payload: ------WebKitFormBoundaryIn312MOjBWdkffIM Content-Disposition: form-data; name="file"; filename="my-image.jpg" Content-Type: image/jpeg ------WebKitFormBoundaryIn312MOjBWdkffIM Content-Dispos

## Raw sockets in Go: Link layer

DevFeed: [Raw sockets in Go: Link layer](<https://devfeed.tech/articles/raw-sockets-in-go-link-layer-35450.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/raw-sockets-in-go-link-layer/>)

Author: Graham King

Published: 2015-01-31T20:55:57Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Network](<https://devfeed.tech/topics/network.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Internet](<https://devfeed.tech/topics/internet.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [go](<https://devfeed.tech/tags/go.md>), [headers](<https://devfeed.tech/tags/headers.md>), [http](<https://devfeed.tech/tags/http.md>), [ip](<https://devfeed.tech/tags/ip.md>), [ipv4](<https://devfeed.tech/tags/ipv4.md>), [ipv6](<https://devfeed.tech/tags/ipv6.md>), [linux](<https://devfeed.tech/tags/linux.md>), [network](<https://devfeed.tech/tags/network.md>), [network-programming](<https://devfeed.tech/tags/network-programming.md>), [posix](<https://devfeed.tech/tags/posix.md>), [programming](<https://devfeed.tech/tags/programming.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [raw](<https://devfeed.tech/tags/raw.md>), [socket](<https://devfeed.tech/tags/socket.md>), [software](<https://devfeed.tech/tags/software.md>), [tcp](<https://devfeed.tech/tags/tcp.md>), [udp](<https://devfeed.tech/tags/udp.md>), [unix](<https://devfeed.tech/tags/unix.md>)

### AI overview

A technical tutorial on using raw sockets in Go at the link layer. It explains receiving IP packets, inspecting and crafting IP headers, selecting address families and protocols, sending ICMP echo requests, and observing kernel responses. It also discusses Linux behavior and portability limitations for raw sockets.

### Source excerpt

Diving deep into raw sockets and IP headers with Go: A technical exploration.

## ReactOS Newsletter 13: Project Changes, Release Process, and Kernel Work

DevFeed: [ReactOS Newsletter 13: Project Changes, Release Process, and Kernel Work](<https://devfeed.tech/articles/newsletter-13-32879.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/newsletter-13/>)

Published: 2006-12-13T00:00:00Z

Content type: news

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [Development](<https://devfeed.tech/topics/development.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [IO](<https://devfeed.tech/topics/io.md>)

Tags: [free](<https://devfeed.tech/tags/free.md>), [headers](<https://devfeed.tech/tags/headers.md>), [intel](<https://devfeed.tech/tags/intel.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [news](<https://devfeed.tech/tags/news.md>), [newsletter](<https://devfeed.tech/tags/newsletter.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [recap](<https://devfeed.tech/tags/recap.md>), [release](<https://devfeed.tech/tags/release.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

ReactOS Newsletter 13 recaps project changes since version 0.3, including a proposed regular release process, updated build support, kernel I/O work, experimental kernel memory-management and cache-manager work, and partial booting on Intel Macs and Parallels VM.

### Source excerpt

I'm the new guy(s) Yup, that's right, we're the new newsletter writers (those two words should never be used in combination - I promise never to do it again). We fought off a crowd of people breaking their necks to apply, and finally, we're here. So. Who are we? I am Dana Burkart, I will do most of the writing, and my associate - Samuel Serapion - will be providing most of the information.