Skip to content

Core Syntax

The core syntax — request lines, headers, body, separators, and comments — is the most portable part of the .http format.

Feature VS CodeJetBrainshttpyacVS 2022kulala
Request line (METHOD URL [HTTP-version]) ✓ ✓ ✓ ✓ ✓
Method defaults to GET when omitted ✓ ✓ ✓ ✓ ✓
Multi-line URLs via indentation Continuation lines beginning with whitespace are concatenated to the URL. ✓ ✓ ✓ ✗ ✓
HTTP/2 version VS Code REST Client does not document HTTP/2 support. ✗ ✓ ✓ ✓ ✓
HTTP/2 (Prior Knowledge) Direct HTTP/2 without upgrade negotiation. ✗ ✓ ✗ ✗ ✗
HTTP/3 version Unique to Visual Studio 2022. ✗ ✗ ✗ ✓ ✗
Request separator (###) ✓ ✓ ✓ ✓ ✓
Line comments (#) ✓ ✓ ✓ ✓ ✓
Line comments (//) ✓ ✓ ✓ ✓ ✓
Block comments (/* */) Unique to httpyac. ✗ ✗ ✓ ✗ ✗
Text after ### as request title ✗ ✓ ✓ ✗ ✓
Request headers (Name: Value) ✓ ✓ ✓ ✓ ✓
Multi-line header values via indentation ✗ ✓ ✓ ✗ ✗
Spread headers (...variableName) Injects all key-value pairs from an object variable as headers. ✗ ✗ ✓ ✗ ✗
Request body after blank line ✓ ✓ ✓ ✓ ✓
URL-encoded form body with & prefixes ✓ ✓ ✓ ✓ ✓

Every client supports:

  • METHOD URL [HTTP-version] request lines with GET as the default method
  • Name: Value headers terminated by a blank line
  • Request body after the blank line
  • ### request separators
  • # and // line comments
  • {{variableName}} substitution
  • @var = value inline variable definitions

All clients except Visual Studio 2022 support breaking long URLs across lines with indentation:

GET https://example.com/api
/users
?page=2
&limit=10

HTTP/2 (Prior Knowledge) is JetBrains-only. HTTP/3 is VS 2022-only.

JetBrains, httpyac, and kulala.nvim treat text after ### as a request title. VS Code REST Client and VS 2022 treat it as a comment.

Only httpyac supports /* ... */ block comments.

Syntax details: File Basics, Requests, Separators & Comments.