DP Delphi / Pascal  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Сеть и HTTP-клиенты

Здесь мало узнать знакомое ключевое слово. Нужно проследить срок жизни данных, порядок вызовов, обработку ошибок и договор между модулями. Тест содержит 30 вопросов, включая 6 фрагментов кода, и разбирает темы: «Клиент THTTPClient», «Тайм-ауты», «Проверка TLS», «Потоковая загрузка», «Проверка корректности» и «Устойчивость к сбоям».

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На весь тест отведено 85 минут. Код лучше сначала разобрать вручную: правильный вариант должен объяснять механизм, а не только совпадать с одним запуском.
Вопрос 1 из 30
Что подтверждают два последовательных `Get` через один экземпляр `THTTPClient`?
PascalDelphi / Pascal · Клиент THTTPClient
// Один клиент хранит общие настройки и используется для нескольких запросов.
program HttpClientReuse;
{$APPTYPE CONSOLE}
uses System.Net.HttpClient;
var
  Client: THTTPClient;
  Response: IHTTPResponse;
begin
  Client := THTTPClient.Create;
  try
    Client.UserAgent := 'DelphiClient/1';
    Response := Client.Get('https://example.com/api/ping');
    Writeln(Response.StatusCode);
    Response := Client.Get('https://example.com/api/version');
    Writeln(Response.StatusCode);
  finally
    Client.Free;
  end;
end.
Вопрос 2 из 30
Какой сценарий по теме «Тайм-ауты» отличит исправную реализацию от версии со скрытым дефектом? Сопоставьте обычный путь и изменение состояния.
Вопрос 3 из 30
Правка по теме «Проверка TLS» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 4 из 30
Какой сценарий по теме «Потоковая загрузка» отличит исправную реализацию от версии со скрытым дефектом? Сопоставьте обычный путь и изменение состояния.
Вопрос 5 из 30
В теме «Проверка корректности» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 6 из 30
Какое условие необходимо, чтобы повтор `POST` в `RetryPolicy` не создавал второй платёж?
PascalDelphi / Pascal · Устойчивость к сбоям
// Проследите фактическое поведение RetryPolicy.
program RetryPolicy;
uses System.Net.HttpClient, System.Classes, System.SysUtils;
procedure SendPayment(Client: THTTPClient; const IdempotencyKey: string);
var
  Attempt: Integer;
  Payload: TStringStream;
begin
  Payload := TStringStream.Create('{"amount":100}', TEncoding.UTF8);
  try
    for Attempt := 1 to 3 do
    try
      Payload.Position := 0;
      Client.CustomHeaders['Idempotency-Key'] := IdempotencyKey;
      Client.Post('https://example.com/payments', Payload);
      Exit;
    except
      if Attempt = 3 then raise;
      Sleep(Attempt * 500);
    end;
  finally
    Payload.Free;
  end;
end;
begin end.
Вопрос 7 из 30
Какое свойство темы «Клиент THTTPClient» становится решающим на граничном входе или при другом порядке действий? Сопоставьте обычный путь и изменение состояния.
Вопрос 8 из 30
Модуль, использующий тему «Тайм-ауты», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре? Сопоставьте обычный путь и изменение состояния.
Вопрос 9 из 30
Какое свойство темы «Проверка TLS» становится решающим на граничном входе или при другом порядке действий? Сопоставьте обычный путь и изменение состояния.
Вопрос 10 из 30
Для темы «Потоковая загрузка» готовят регрессионный набор из двух разных сценариев. Какой набор действительно закрывает обе границы?
Вопрос 11 из 30
Какой граничный результат следует ожидать в `ResponseChecks`, когда после `raise Exception.Create('Unexpected content type');` выполняется `Writeln(Length(Body));`?
PascalDelphi / Pascal · Проверка корректности
// Отделите правило языка от удачного запуска ResponseChecks.
program ResponseChecks;
uses System.Net.HttpClient, System.SysUtils;
procedure ValidateResponse(const R: IHTTPResponse);
var
  Body: string;
begin
  if R.StatusCode <> 200 then
    raise Exception.CreateFmt('HTTP %d', [R.StatusCode]);
  if not R.MimeType.StartsWith('application/json') then
    raise Exception.Create('Unexpected content type');
  Body := R.ContentAsString(TEncoding.UTF8);
  Writeln(Length(Body));
end;
begin end.
Вопрос 12 из 30
Правка по теме «Устойчивость к сбоям» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 13 из 30
Две реализации темы «Клиент THTTPClient» совпадают на обычном примере. Какое различие всё же меняет их договор? Сопоставьте обычный путь и изменение состояния.
Вопрос 14 из 30
В практическом сценарии по теме «Тайм-ауты» меняются входные данные и порядок действий. Какой вывод остаётся корректным? Сопоставьте обычный путь и изменение состояния.
Вопрос 15 из 30
В теме «Проверка TLS» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 16 из 30
Что меняет запись ответа непосредственно в `FileStream`, и почему файл `package.tmp` ещё нельзя считать готовым пакетом?
PascalDelphi / Pascal · Потоковая загрузка
// Проследите фактическое поведение StreamDownload.
program StreamDownload;
uses System.Net.HttpClient, System.Classes;
var Client: THTTPClient; FileStream: TFileStream;
begin
  Client := THTTPClient.Create;
  FileStream := TFileStream.Create('package.tmp', fmCreate);
  try
    Client.Get('https://example.com/package.bin', FileStream);
  finally
    FileStream.Free;
    Client.Free;
  end;
end.
Вопрос 17 из 30
Модуль, использующий тему «Проверка корректности», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре? Сопоставьте обычный путь и изменение состояния.
Вопрос 18 из 30
Какое свойство темы «Устойчивость к сбоям» становится решающим на граничном входе или при другом порядке действий? Сопоставьте обычный путь и изменение состояния.
Вопрос 19 из 30
Реализацию темы «Клиент THTTPClient» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться? Сопоставьте обычный путь и изменение состояния.
Вопрос 20 из 30
В теме «Тайм-ауты» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 21 из 30
В `TlsValidation` строка `if AcceptCertificateDespiteFailure('hostname mismatch') then` создаёт условие для последующей `Writeln('request continues');`. Какой вывод подтверждает этот фрагмент?
PascalDelphi / Pascal · Проверка TLS
// Определите реальную гарантию в TlsValidation.
program TlsValidation;
{$APPTYPE CONSOLE}
function AcceptCertificateDespiteFailure(const FailureReason: string): Boolean;
begin
  Result := True;
end;
begin
  if AcceptCertificateDespiteFailure('hostname mismatch') then
    Writeln('request continues');
end.
Вопрос 22 из 30
Две реализации темы «Потоковая загрузка» совпадают на обычном примере. Какое различие всё же меняет их договор? Сопоставьте обычный путь и изменение состояния.
Вопрос 23 из 30
Модуль, использующий тему «Проверка корректности», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре? Сопоставьте обычный путь и изменение состояния. Рассмотрите вариант, где меняется состояние, но внешний интерфейс остаётся прежним.
Вопрос 24 из 30
Какое свойство темы «Устойчивость к сбоям» становится решающим на граничном входе или при другом порядке действий? Сопоставьте обычный путь и изменение состояния. Рассмотрите вариант, где меняется состояние, но внешний интерфейс остаётся прежним.
Вопрос 25 из 30
Для темы «Клиент THTTPClient» готовят регрессионный набор из двух разных сценариев. Какой набор действительно закрывает обе границы?
Вопрос 26 из 30
Что именно обеспечивают присвоения `ConnectionTimeout` и `ResponseTimeout` перед `Post`?
PascalDelphi / Pascal · Тайм-ауты
// Проследите фактическое поведение HttpTimeout.
program HttpTimeout;
uses System.Net.HttpClient, System.Classes, System.SysUtils;
var
  Client: THTTPClient;
  Payload: TStringStream;
begin
  Client := THTTPClient.Create;
  Payload := TStringStream.Create('{}', TEncoding.UTF8);
  try
    Client.ConnectionTimeout := 5000;
    Client.ResponseTimeout := 15000;
    Client.Post('https://example.com/orders', Payload);
  finally
    Payload.Free;
    Client.Free;
  end;
end.
Вопрос 27 из 30
Обычный пример по теме «Проверка TLS» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник? Сопоставьте обычный путь и изменение состояния.
Вопрос 28 из 30
Реализацию темы «Потоковая загрузка» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться? Сопоставьте обычный путь и изменение состояния.
Вопрос 29 из 30
Обычный пример по теме «Проверка корректности» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник? Сопоставьте обычный путь и изменение состояния.
Вопрос 30 из 30
В теме «Устойчивость к сбоям» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу