티스토리 뷰

반응형

HTTP 메시지는 시작 줄, 헤더, 본문 3부분으로 구성된다.

본문은 필요에 따라 있을 수도, 없을 수도 있다.

헤더의 Content-Length 필드는 본문의 크기를 표시한다.

 

요청 메시지 구조

<메서드> <요청 URL> <버전>
<헤더>

<본문>

 

응답 메시지 구조

<버전> <상태 코드> <사유 구절>
<헤더>

<본문>

요청 메시지와 응답 메시지는 시작 줄을 제외하고 형태가 같다.

  • 메서드 - 이 요청이 서버에게 바라는 리소스에 대한 동작
  • 요청 URL - 요청 대상이 되는 리소스의 위치이다.
  • 버전 - 이 메시지의 HTTP 버전이다.
  • 상태 코드 - 요청에 대한 처리의 결과를 간략하게 나타낸다. 세자리 숫자로 구성된다.
  • 사유 구절 - 숫자로 된 상태 코드의 의미를 사람이 이해하도록 설명하는 짧은 문구이다. 오로지 사람이 이해하는 용도로 써야 하므로, HTTP/2.0 200 OK, HTTP/2.0 200 NOT OK는 동등하게 처리되어야 한다.
  • 헤더 - 해당 메시지에 대한 추가 정보를 담는다.
  • 본문 - 임의의 데이터 블록이며, 본문은 비어있을 수 있다.

아래는 요청 메시지의 예시다.

GET /search?q=h&hl=ko HTTP/1.1
Host:www.google.com
// 헤더 다음 줄은 CRLF가 있어야 한다.

메서드

HTTP 요청의 시작줄은 메서드로 시작하며, 이는 클라이언트가 서버의 리소스에 대해 어떤 동작을 원하는지 설명한다.

GET은 서버에서 문서를 가져오며, POST는 서버가 처리하길 원하는 데이터를 보낸다.

확장 메서드는 HTTP 명세 외에 추가로 구현한 추가 메서드이다.

메서드 설명 본문 유무
GET 서버에서 문서를 가져온다.
HEAD GET과 같지만, 문서 없이 헤더만 가져온다.
POST 서버가 처리해야 할 데이터를 보낸다.
PUT 서버에 요청 메시지의 본문을 저장한다.
DELETE 문서를 제거한다.

안전한 메서드

임의의 메서드를 사용해 요청을 했을 때, 이 요청이 서버에 어떤 작용도 없음을 의미한다. 다만, 정말로 서버에 아무런 작용도 없음을 보장할 수는 없다.

 

상태 코드

메서드가 서버에 어떤 동작을 요청했는지를 알려준다면, 상태 코드는 클라이언트에게 동작을 어떻게 수행했는지를 알려준다.

클라이언트가 서버에 리소스에 대한 동작을 요청하면, 물론 그 요청이 모두 성공하면 좋겠지만, 그럴 수는 없다.

요청한 리소스가 발견되지 않았거나, 권한이 없거나, 리소스가 옮겨졌거나, 서버에 오류가 발생했을 수도 있다.

 

상태 코드는 세 자리 숫자로 표현된다. 이 중 백의 자리 숫자에 따라 분류한다.

백의 자리 분류
1 정보
2 성공
3 리다이렉션
4 클라이언트 에러
5 서버 에러

아래는 몇 가지의 상태 코드에 대한 설명이다.

상태 코드 사유 구절 의미
200 OK 정상적인 응답이며, 요청된 리소스를 포함함.
201 Created PUT 메서드에 대해, 리소스 생성이 완료됨.
303 See Other 클라이언트에게 리소스를 다른 곳에서 가져와야 한다고 알림.
위치를 Location 헤더에 담아 응답.
400 Bad Request 잘못된 요청임을 알림.
401 Unauthorized 클라이언트에게 인증을 요구함.
404 Not Found 요청 URL 위치에 리소스가 없음을 알림.
408 Request Timeout 요청을 완수하기에 시간이 너무 많이 걸려 연결을 끊음.
409 Conflict 요청이 리소스에 대한 충돌을 일으킴.
500 Internal Server Error 요청을 처리할 수 없게 만드는 에러 발생을 알림.

 

반응형

'CS > HTTP' 카테고리의 다른 글

[HTTP] 통합점 (게이트웨이, 터널, 릴레이)  (0) 2023.06.29
[HTTP] HTTP 캐시  (0) 2023.06.28
[HTTP] HTTP 커넥션 관리  (0) 2023.06.28
[HTTP] 리소스 식별자 (URI, URL, URN)  (0) 2023.06.26
[HTTP] HTTP(Hypertext Transfer Protocol)  (0) 2023.06.26
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함