|
|
| version 1.1, 2026/10/10 13:00:13 | version 1.3, 2026/10/22 23:31:36 |
|---|---|
| Line 1 | Line 1 |
| # ^response:send[]: the headers go with the first part, the result of @main is not sent | # ^response:stream[]: the headers go with the first part, the result of @main is not sent |
| @main[] | @main[][before;error;failed] |
| not sent | not sent |
| # the first field of the response is not a header: see the failed start below | |
| $response:x-table[^table::create{a}] | |
| $response:x-test[sent with the first part] | $response:x-test[sent with the first part] |
| $before[$response:started] | |
| # $response:started can not be assigned | |
| ^try{ $response:started[stream] }{ $exception.handled(true) $error[$exception.comment] } | |
| # a part is checked before the headers are sent | # a part is checked before the headers are sent |
| ^try{ ^response:send(true) }{ $exception.handled(true) $response:x-bool[$exception.comment] } | ^try{ ^response:stream(true) }{ $exception.handled(true) $response:x-bool[$exception.comment] } |
| ^try{ ^response:send[^file::stat[464.html]] }{ $exception.handled(true) $response:x-stat[$exception.comment] } | ^try{ ^response:stream[^file::stat[464.html]] }{ $exception.handled(true) $response:x-stat[$exception.comment] } |
| ^response:send[1. string, untainted: ^taint[<b>] | # the headers are prepared before the state is set: a failure is an ordinary error, nothing is sent |
| ^try{ ^response:stream[never sent] }{ $exception.handled(true) $failed[$exception.comment, started: [$response:started]] } | |
| $response:x-table[ok] | |
| ^response:stream[1. string, untainted: ^taint[<b>] | |
| ] | ] |
| not sent either | not sent either |
| ^response:send[^file::create[text;part.txt;2. file | ^response:stream[^file::create[text;part.txt;2. file |
| ]] | ]] |
| $response:x-late[too late, not sent] | $response:x-late[too late, not sent] |
| ^response:send[3. number and void: |] | ^response:stream[3. number and void: |] |
| ^response:send(3) | ^response:stream(3) |
| ^response:send[$void] | ^response:stream[$void] |
| ^response:send[| | ^response:stream[| |
| ] | ] |
| ^check{^response:send[$.a[1]]} | ^check{^response:stream[$.a[1]]} |
| ^check{^response:send[^table::create{a}]} | ^check{^response:stream[^table::create{a}]} |
| ^check{^response:send{code}} | ^check{^response:stream{code}} |
| ^response:send[5. the last part | ^response:stream[5. state, before the first part: [$before], assignment: $error, failed start: $failed, now: [$response:started] |
| ] | |
| ^response:stream[6. the last part | |
| ] | ] |
| @check[code] | @check[code] |
| ^try{$code}{ $exception.handled(true) ^response:send[4. $exception.comment^#0A] } | ^try{$code}{ $exception.handled(true) ^response:stream[4. $exception.comment^#0A] } |
| @postprocess[body] | @postprocess[body] |
| ^response:send[not sent: @postprocess is not called] | ^response:stream[not sent: @postprocess is not called] |