Как понять, когда мне нужно самостоятельно отправлять заголовки?
изучить какие заголовки существуют и для чего они существуют.
Прочитать рфц для начала
Загуглить список кодов ответов http, прочесть, что не понятно - загуглить отдельно
Сопоставить с тем что отдает ваш сервер по умолчанию, и что вы хотите реально донести до клиента.
Посмотреть чем отличаются заголовки у разного типа контента
Много читать по теме.