메시지의 각 줄은 캐리지 리턴(\r), 개행 문자(\n)로 구성된 줄바꿈 문자열로 끝난다.
캐리지 리턴 : 현재 커서를 줄 올림 없이 가장 앞으로 옮기는 동작
라인 피드 : 커서는 그 자리에 두고 한 줄 올려 줄을 바꾸는 동작
요청 메시지의 형식
<메서드> <요청 URL> <버전>
<헤더>
---- 빈 줄 ----
<본문>
응답 메시지의 형식
<버전> <상태 코드> <사유 구절>
<헤더>
---- 빈 줄 ----
<본문>
HTTP 메시지는 시작줄로 시작한다.
클라이언트에게 무엇이 일어났는지 알려준다.
100번대는 정보, 200번대는 성공, 300번대는 리다이렉션, 400번대는 클라이언트에러, 500번대는 서버 에러를 나타낸다.
자주 사용되는 상태 코드
상태 코드 | 사유 구절 | 의미 |
---|---|---|
200 | OK | 요청 정상, 요청한 리소스는 본문에 있다. |
201 | Created | 객체 생성완료, 리소스의 위치가 Location 헤더에 포함되어 있다. |
202 | Accepted | 요청을 완료됬으나 리소스에 대한 처리가 완료된지 않았다. |
204 | No Content | 요청은 성공했으나 제공할 본문은 없다. 주로 현재 웹 브라우저를 이동하지 않고 갱신시킬때 사용한다. |
300 | Multiple Choices | 요청한 URL이 여러 리소스가 존재할때 사용된다. |
301 | Moved Permanently | 요청한 리소스가 새로운 URL로 옮겨갔을때 사용된다. 새 위치는 Location 헤데에 있다. |
304 | Not Modified | 요청한 리소스 내용이 변경되지 않았을때 사용된다. |
400 | Bad Request | 클라이언트가 잘못된 요청을 보냈을때 사용한다. |
401 | Unauthorized | 클라이언트가 리소스 접근에 권한이 없을 경우 사용한다. |
403 | Forbidden | 요청이 금지됨을 나타낸다. 주로 서버가 금지 이유를 숨길때 사용된다. |
404 | Not Found | 클라이언트가 잘못된 URL을 요청할 때 사용된다. |
405 | Method Not Allowed | 지원하지 않은 메소드를 요청할때 사용된다. |
406 | Not Acceptable | 클라이언트가 받아들일 수 있는 리소스 종류에 부합하는 리소스가 없을때 사용된다. |
408 | Request Timeout | 요청 대기시간 초과 |
500 | Internal Server Error | 서버 내부 오류 |
502 | Bad Gateway | 게이트웨이 오류 |
503 | Service Unavailable | 현재 요청을 처리할 수 없으나 나중에 가능함을 의미한다. |
504 | Gateway Timeout | 게이드웨이 시간 초과 |