Skip to content

Core Syntax Comparison

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.