Why is my cookie not being set?
Common causes are SameSite=None without Secure, a __Host- or __Secure- prefix whose rules are broken, a Domain the page cannot set, or a size over 4096 bytes. The decoder flags each of these.
Paste a Cookie request header or one or more Set-Cookie lines. Each cookie is decoded into its name, value shape, lifetime, scope, and cross-site behavior, and checked against the rules modern browsers actually enforce.
Loading the workbench.
You do not have to take our word that your cookies stay here. Developer tools show every request a page makes, so you can watch this page work and confirm that nothing is sent. The check takes under a minute.
F12, or Cmd+Option+I on a Mac, and select the Network tab.Only two things can add a line to that log, and neither carries your cookies. Submitting the feedback form sends the vote and comment you typed. Typing characters in a script the page has not displayed yet, such as Cyrillic or Greek, can make the browser fetch the matching font file, and that request names only the font.
2http never sends a request on your behalf: the request builder writes code for you to run, and the meta inspector reads source you paste instead of fetching a URL. The production site also sends a Content-Security-Policy header that tells your browser to refuse connections to anywhere except this site and the anonymous analytics endpoint.
Set-Cookie is a response header: the server uses it to store one cookie, with attributes that control how long it lives and where it is sent. Cookie is a request header: the browser sends back every cookie that matches the request, as plain name=value pairs separated by semicolons, with no attributes at all.
The decoder detects which one you pasted. For a Cookie header it lists each cookie, flags duplicate names, and warns when the header grows past the 8 KB many servers accept. For Set-Cookie lines it decodes and audits every attribute.
Cookies whose names look like sessions or auth tokens get stricter checks: a missing Secure or HttpOnly on those is a failure, not a suggestion.
Cookie values are usually sessions, so they are masked by default with a short prefix and the length. The decoder still describes the shape of each value without printing it: URL-encoded text, JSON with its key names, a JWT with its algorithm and claim names, a hex identifier with its bit length, base64, a UUID, or an Express signed cookie. A Reveal option shows the real value, and everything is wiped when you leave the tab.
Elsewhere in 2http: Security header audit, Request builder, Meta tag generator, HTTP status codes, MIME types, and all eleven lanes on the 2http home page. Part of the 2suite.io privacy-first ecosystem.
Common causes are SameSite=None without Secure, a __Host- or __Secure- prefix whose rules are broken, a Domain the page cannot set, or a size over 4096 bytes. The decoder flags each of these.
The cookie is sent when a user follows a link to your site, but not on cross-site requests such as images, iframes, or fetch calls from another site. It blocks most cross-site request forgery.
Yes. HttpOnly stops page JavaScript from reading it, so a cross-site scripting bug cannot steal the session. Only cookies the front end must read should go without it.
No. Decoding happens in this tab only. Values are masked on screen, never saved, and wiped when you leave the tab or press Wipe.