HyperText를 주고 받을 때 지켜야 할 규칙을 말한다. 우리가 주로 접하는 HyperText로는 HTML이 있다. 도메인 주소 앞에 http 또는 https 가 붙는 것은 '이 웹페이지는 HTTP 규약을 따르겠다' 라는 의미로 볼 수 있다.
HyperText를 주고 받는다는 것은 적어도 2대의 컴퓨터가 소통하는 것이다. 주고 받음을 Requet 요청과 Response 응답이라고 표현한다.
HTTP 각각의 요청과 응답은 독립적이다. 이전의 요청과 응답을 기억하지 못하므로 항상 모든 정보를 담아서 요청해야 한다. 예를 들어, 로그인에 대한 요청과 응답이 이루어진 후 다음 요청을 진행할 때 HTTP는 이전에 진행한 로그인 정보를 담고 있지 않기 때문에 이전 정보도 담아야 한다. 이러한 번거로움을 덜기 위해 이전 정보를 토큰에 저장할 수 있다. 토큰은 쿠키나 세션 스토리지에 담긴다.
요청과 응답의 구조에서 한가지 다른 점은 Start line과 Status line에 있다. 둘의 통신에 있어서 요청이 먼저 시작하기 때문에 Start line인 것이다.
Start line : HTTP Method, Target, HTTP Version
Headers : 메타데이터 (데이터에 대한 정보)를 담고 있다.
Body : 요청의 실제 내용이 들어간다.
Status line : HTTP Version, Status code와 text
Headers
Body : 응답의 실제 내용이 들어간다.
200 (OK) : 응답이 정상적으로 이루어졌을 때
201 (Created) : 데이터 생성에 성공했을 때
400 (Bad Request) : 요청 Body의 내용이 잘못 되었을 경우
401 (Unauthorized) : 로그인을 하고 나서 실현할 수 있는 요청일 경우
예) 인스타그램의 '좋아요'는 로그인을 한 유저들만 정상적인 응답을 받는다
403 (Forbidden) : 권한이 없을 때
예) 프리미엄 계정에게만 오픈된 정보일 경우
404 (Not Found) : 잘못된 url 일 경우
500 (Internal Server Error) : 서버가 터지는 등 서버 오류가 발생한 경우