Olá, Luciana!
O Everton indicou um excelente post sobre o assunto, mas de forma bem simples...
O accept indica qual o formato da resposta o cliente é capaz de entender. Por exemplo, um navegador aceita HTML enquanto a aplicação vue aceita JSON. Existem outros tipos de formatos disponíveis que você pode conferir aqui.
O mesmo para o content-type, mas nesse caso estamos indicando o formato que estamos enviando para o servidor. Enquanto a aplicação envia um JSON para criar um novo lance, por exemplo, um formulário web com um arquivo em anexo envia um header indicando que o content-type é "multipart/form-data".
Basicamente, eles indicam o formato da mensagem que é esperado como resposta ou que está sendo enviado na requisição.
Genial a sua pergunta, é muito legal ter uma visão pragmática das coisas e buscar entender o que está acontecendo!