3. HTTP 메세지(2)

Hoony·2022년 8월 1일
0

HTTP

목록 보기
4/6
post-thumbnail

메서드


HTTP 여러 종류의 메서드를 지원한다.
하지만 이때 모든 서버가 모든 메서드를 지원하는 것은 아니므로 주의해야 한다.


안전한 메서드란?

  • HTTP 요청의 결과로 서버에 어떤 작용이 없는 메서드를 의미한다.
  • 일반적으로 GET, HEAD 메서드를 의미하는데 항상 작용이 없다고 보장은 할 수 없다.


GET

GET은 가장 흔히 쓰이는 메서드이다.

  • 서버에게 리소스를 요청하기 위해 사용된다.

HEAD 메서드는 정확히 GET 메서드처럼 행동하지만 응답으로 헤더만 돌려준다.
엔티티 본문은 결코 반환되지 않는다.

  • 리소스를 가져오지 않고 응답 대략정인 내용 알아낼 수 있다.
  • 응답 상태 코드를 통해 개체 존재 유무를 파악할 수 있다.
  • 헤더를 통해 리소스가 변경되었는지 확인할 수 있다.

PUT

PUT 메서드는 GET 메서드가 반대로 서버에 문서를 제공한다.
서버는 요청의 본문을 가지고 새 문서를 만들거나 기존 본문을 교체한다.

  • PUT 메서드는 콘텐츠 변경의 위험이 있어 대부분 웹서버가 PUT을 수행하기 전에 사용자 인증을 요구한다.

POST

POST 메서드는 서버에 입력 데이터를 전송한다.

  • 클라이언트가 POST 메서드를 통해 서버로 데이터를 전송하면 서버는 그에 맞는 동작을 수행한다.

TRACE

클라이언트가 서버에 요청을 할 때, 해당 요청은 방화벽, 프락시, 게이트웨이 등을 통과할 수 있다.
TRACE 메서드는 클라이언트 요청이 서버에 도달했을 때 어떻게 보이게 되는지 알려준다.

  • TRACE 요청은 서버에 Loopback(루프백) 진단을 요청한다.
  • 서버는 받은 요청 메세지를 본문에 넣어 그대로 클라이언트에 응답 메세지로 다시 보낸다.

OPTINOS

OPTINOS 메서드는 웹 서버에게 여러 가지 종류의 지원 범위에 대해 물어본다.

  • 서버에게 특정 리소스에 대해 어떤 메서드가 지원되는지 물어보는 메서드이다.

DELETE

서버에게 요청 URL로 지정한 리소스를 삭제할 것을 요청한다.

  • 삭제가 수행되는 것을 보장하지는 못한다.



상태 코드


200-299(성공 상태 코드)

  • 200 | OK | 요청은 정상이고, 엔티티 본문은 요청된 리소스를 포함하고 있다.
  • 201 | Created | PUT 메서드와 같이 특정 생성 요청에 대한 응답으로 생성한 리소스에 대한 참조가 포함된다.
  • 202 | Accepted | 요청은 접수되었으나 아직 그에 대한 어떤 동작도 수행하지 않았다.
  • 203 | Non-Authoritative Information | 정보가 원래 서버가 아닌 리소스의 사본에서 왔다.
  • 204 | No Content | 엔티티 본문은 포함하지 않는다.
  • 205 | Reset Content | 현재 페이지에 채워진 데이터를 전부 비우라는 요청이다.
  • 206 | Partial Content | 부분, 범위 요청이 성공했음을 의미한다.


300-399(리다이렉션 상태 코드)

해당 상태코드는 클라이언트가 요청한 리소스에 대해 해당 리소스가 아닌 다른 응답을 제공함을 의미한다.



400-499(클라이언트 에러 상태 코드)

해당 상태 코드는 서버가 다룰 수 없는 요청임을 의미한다.



500-599(서버 에러 상태 코드)

클라이언트가 올바른 요청을 보냈음에도 서버 자체에서 에러가 발생하는 경우가 있다.
해당 상태 코드는 이러한 경우에 사용된다.




헤더


헤더에는 특정 종류 메세지에만 사용할 수 있는 헤더부터 응답, 요청 메세지에 사용되는 헤더 등등 총 5가지로 뷴류된다.


일반 헤더

특정 헤더는 메세지에 대한 기본적인 정보만 제공한다.
이러한 헤더들을 일반 헤더라고 부른다.

일반 캐시 헤더란?

  • HTTP는 서버로부터 객체를 가져오는 대신 로컬 복사본으로 캐시할 수 있는 헤더를 도입했다.
  • 이러한 헤더를 일반 캐시 헤더라고 부른다.

요청 헤더

요청 헤더는 요청 메세지에서만 의미를 갖는 헤더이다.
누가 혹은 무엇이 그 요청을 보냈는지에 대한 정보나 클라이언트의 능력에 대한 정보를 포함하고 있다.


조건부 요청 헤더

클라이언트는 때때로 요청에 몇몇 제약을 건다.
이러한 헤더를 조건부 요청 헤더라고 한다.

  • 예를 들어, 자신이 갖고 있는 사본과 원본 사본이 다를 때만 요청을 보내고 싶은 경우 해당 헤더를 사용한다.

응답 헤더

응답 헤더는 클라이언트에게 부가 정보를 제공한다.
누가 응답을 보내고 응답자의 능력은 어떠한 지에 대한 같은 정보를 제공한다.


엔티티 헤더

엔티티에 대한 설명을 포함하는 헤더이다.
요청과 응답 양쪽 모두 엔티티 본문을 가질 수 있는 해당 헤더를 사용할 수 있다.

profile
Just Do it!

0개의 댓글