WebSockets ws: Peculiar frame sizes Debug ws http lib2700 ws://%HOSTIP:%HTTPPORT/%TESTNUMBER CURL_WS_FORCE_ZERO_MASK=1 upgrade # Full list of frames: see below # Frames with sizes around special cases of the frame encoding # see https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 # - 0: empty frame # - 125: largest payload with 7-bit encoding # - 126: smallest payload with 16-bit encoding AND this value in first byte indicates 16-bit encoding # - 127: this value in first byte indicates 64-bit encoding # - 65535: largest payload with 16-bit length encoding # - 65536: smallest payload with 64-bit length encoding HTTP/1.1 101 Switching to WebSockets Server: server/%TESTNUMBER Upgrade: Websocket Connection: Upgrade Sec-WebSocket-Accept: HkPsVga7+8LuxM4RGQ5p9tZHeYs= %hex[%81%00]hex%%hex[%81%7d]hex%%repeat[125 x _]%%hex[%81%7e%00%7e]hex%%repeat[126 x _]%%hex[%81%7e%00%7f]hex%%repeat[127 x _]%%hex[%81%7e%ff%ff]hex%%repeat[65535 x _]%%hex[%81%7f%00%00%00%00%00%01%00%00]hex%%repeat[65536 x _]%%hex[%88%00]hex% # Exact echo of reply data with additional masking %hex[%81%80%00%00%00%00]hex%%hex[%81%fd%00%00%00%00]hex%%repeat[125 x _]%%hex[%81%fe%00%7e%00%00%00%00]hex%%repeat[126 x _]%%hex[%81%fe%00%7f%00%00%00%00]hex%%repeat[127 x _]%%hex[%81%fe%ff%ff%00%00%00%00]hex%%repeat[65535 x _]%%hex[%81%ff%00%00%00%00%00%01%00%00%00%00%00%00]hex%%repeat[65536 x _]%%hex[%88%80%00%00%00%00]hex% txt fin [0] txt fin [125] %repeat[125 x _]% txt fin [126] %repeat[126 x _]% txt fin [127] %repeat[127 x _]% txt fin [65535] %repeat[65535 x _]% txt fin [65536] %repeat[65536 x _]% close [0] # CURLE_OK 0 # Strip HTTP header from ^GET /.* ^(Host|User-Agent|Accept|Upgrade|Connection|Sec-WebSocket-(Version|Key)): .* ^\s*$