SOH (Start of Heading) is ASCII code point 1 (0x01), Unicode U+0001. It is a C0 control character that preceded a message header on teleprinter links — everything between SOH and the following STX (0x02) was routing or addressing metadata, not payload. In IBM BSC, the SOH-to-STX region carried station addresses and sequence numbers that the receiver processed before the actual data block began. Ctrl+A emits 0x01, which tmux and GNU Screen repurposed as their default command prefix. UTF-8 encodes it as the single byte 0x01; Unicode classifies it as Cc (Control) with the alias START OF HEADING.
unsigned char frame[] = {0x01,'A','1',0x02,'O','K'};// SOH marks header start; STX marks payload startint is_soh = (frame[0] == 0x01);
SOH (ASCII 1) marks the beginning of a message header in communication protocols. It separates routing/control information from the actual message content. Think of it as the start of the 'envelope' before the 'letter' inside.
It's used in protocols like BISYNC and some industrial/serial standards to indicate where the header section begins. In HL7 healthcare messaging, SOH-like markers delineate message segments. Some serial device protocols still frame messages with SOH.
Conceptually yes — both separate metadata from content. But HTTP uses text-based boundaries (the blank line \r\n\r\n between headers and body) instead of a control byte. SOH was the binary-protocol approach to the same structural problem.
Ctrl+A sends SOH (ASCII 1). In modern terminals, Ctrl+A is intercepted for 'move to start of line' (readline/emacs) or as the tmux/screen prefix key, so the raw SOH byte almost never reaches programs.