Скачать BLOB отдельным HTTP-ответом и проверить полученные байты

Фактические данные получены через расширение interbase от отдельной локальной базы Firebird. Собственная учебная таблица удалена после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
HTTP-статус200
Content-Typeapplication/octet-stream
Content-Dispositionattachment; filename="firebird-attachment.bin"
Получено байт по HTTP80016
Content-Length совпал с теломда
Полученные байты совпали с исходникомда
SHA256 полученного вложения1fa505ea1e8fe687f0f4e56b0be50fd330cd2af624cf9e25b55a3e85a70115ac
Дочерний HTTP-сервер остановленда
Копия файла у клиентаdownloaded.bin
Строки и дополнительные наблюдения
{
    "transport": "real HTTP over 127.0.0.1",
    "http_status": 200,
    "content_type": "application\/octet-stream",
    "content_disposition": "attachment; filename=\"firebird-attachment.bin\"",
    "content_length": "80016",
    "received_bytes": 80016,
    "received_sha256": "1fa505ea1e8fe687f0f4e56b0be50fd330cd2af624cf9e25b55a3e85a70115ac",
    "expected_sha256": "1fa505ea1e8fe687f0f4e56b0be50fd330cd2af624cf9e25b55a3e85a70115ac",
    "exact_bytes_match": true,
    "php_header": "8.2.35",
    "interbase_header": "3.0.1",
    "server_started": true,
    "server_stopped": true,
    "http_requests": 1,
    "client_saved_file": "downloaded.bin",
    "private_token_published": false,
    "cli_output_buffer_used_as_http_test": false
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.