Requests: A Diferença entre Ready State e Status Code

Em se tratando de APIs algumas pessoas ainda podem confundir “Status Code” com “Ready State”. Então vamo lá desembaraçar esse fio:

Toda request que retorna uma resposta (seja 200x, 300x, 500x, …) é uma request bem sucedida do ponto de vista do brows…


This content originally appeared on DEV Community and was authored by Felippe Regazio

Em se tratando de APIs algumas pessoas ainda podem confundir "Status Code" com "Ready State". Então vamo lá desembaraçar esse fio:

Toda request que retorna uma resposta (seja 200x, 300x, 500x, ...) é uma request bem sucedida do ponto de vista do browser. A request PER SI foi feita: ela saiu do seu browser, bateu no server e te devolveu algo, ainda que a resposta não seja a que vc esperava.

Essa verificação de "estado de requisição" é a Ready State. Isso não tem a ver se foi 200, 400, 500. Quando falamos de estados, estamos dizendo que a comunicação entre o browser e o server seguiu todos os seus estágios perfeitamente: algo foi enviado, e uma uma resposta foi dada.

Aqui vc pode ler um pouco sobre Ready States. Embora ela esteja atrelada a doc do XMLHttpRequest, a anatomia das Requests States são basicamente a mesma pra fetch e derivados (vc pode querer ver sobre preflight tbm): https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState

Esse é o motivo de não devermos mandar Status Code 200 com { error: true } na body da resposta. Mas então se a Ready State define o estado de tráfego da requisição, pra que o Status Code?

O Status Code informa o posicionamento do Server referente a sua request. Ou seja: vc pediu algo, o server te entregou junto com um bilhete dizendo o que aconteceu lá.

Assim, se vc retorna um 200, vc não está dizendo que a REQUEST EM SI foi bem sucedida. O browser já sabe disso através do Ready State. Um 200 está dizendo que o server vai entregar o que ele deveria entregar.

Ou seja, o Status Code determina o STATUS da sua resposta, e não o ESTADO da requisição. Por isso vc deve retornar os status corretos para cada resposta.
Retornar 200 com { error: true } seria o mesmo que dizer: ta tudo bem, só que não.

Concluindo

Ready State: Determina se tudo correu bem na request referente a comunicação do browser com o server e o recebimento da resposta.

Status Code: Determina a natureza da resposta dada pelo server. É o motivo abreviado da resposta dada e deve ter peso semantico.


This content originally appeared on DEV Community and was authored by Felippe Regazio


Print Share Comment Cite Upload Translate Updates
APA

Felippe Regazio | Sciencx (2021-09-03T17:34:49+00:00) Requests: A Diferença entre Ready State e Status Code. Retrieved from https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/

MLA
" » Requests: A Diferença entre Ready State e Status Code." Felippe Regazio | Sciencx - Friday September 3, 2021, https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/
HARVARD
Felippe Regazio | Sciencx Friday September 3, 2021 » Requests: A Diferença entre Ready State e Status Code., viewed ,<https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/>
VANCOUVER
Felippe Regazio | Sciencx - » Requests: A Diferença entre Ready State e Status Code. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/
CHICAGO
" » Requests: A Diferença entre Ready State e Status Code." Felippe Regazio | Sciencx - Accessed . https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/
IEEE
" » Requests: A Diferença entre Ready State e Status Code." Felippe Regazio | Sciencx [Online]. Available: https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/. [Accessed: ]
rf:citation
» Requests: A Diferença entre Ready State e Status Code | Felippe Regazio | Sciencx | https://www.scien.cx/2021/09/03/requests-a-diferenca-entre-ready-state-e-status-code/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.