현재

HTTP 기본 지식 본문

CS지식

HTTP 기본 지식

AAAge 2024. 4. 2. 18:52

<API URI>

-회원관련 API를 설계할때

  • 회원이라는 개념 자체가 리소스, 즉 미네랄
  • 리소스를 식별할때는 회원이라는 리소스만 식별하면 됨 -> 회원 리소스를 URI에 매핑
  • 리소스는 명사, 행위는 동사로 설계

<HTTP 메서드>

GET : 리소스 조회

- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달

- 메시지 바디로 데이터 전송이 가능하지만, 지원하지 않는 곳이 많아서 사용하지 않는편이 좋다.

 

POST : 요청 데이터 처리, 주로 등록에 사용

- 메시지 바디를 통해 서버로 요청 데이터 전달 -> 서버는 요청 데이터 처리 (데이터를 처리하는 모든 기능 수행)

- 리소스 URI에 POST요청이 오면 요청 데이터를 어떻게 할지 리소스마다 따로 정해야한다.

 

PUT :  리소스를 통째로 대체, 없으면 생성

- 클라이언트가 리소스를 식별한다 [ 예) PUT /members/100 ] <- 주황색과 같이 위치를 알고 URI를 지정

- 부분 리소스 변경 안됨

PATCH : 리소스 부분 변경

DELETE : 리소스 삭제

 

<HTTP 메서드 속성>

안전 : 호출해도 리소스를 변경하지 않는다.

멱등 : 몇번을 호출해도 결과가 똑같은 경우를 말한다.

- 자동 복구 메커니즘에 활용(응답이 정상적이지 않을때 같은 요청 반복)

Ex) GET,PUT,DELETE / POST는 중복호출시 중복결제등 문제가 발생할 가능성 높음캐시가능 : GET, HEAD, POST, PATCH- 실제로는 GET,HEAD 정도만 캐시로 사용, POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데 구현이 어렵다.

 

<HTTP  상태 코드>

  • 1xx(Informational) : 요청이 수신되어 처리중인 상태
  • 2xx(successful) : 요청 정산 처리
  • 3xx(redirection) : 요청을 완료하려면 추가 행동이 필요

-> 대부분 302를 사용 ( 자동 redirection시 GET방식으로 변경되어도 상관 없을 경우에 )

  • 4xx(client error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 5xx(server error) : 서버오류, 서버가 정상요청을 처리못함 ( 터지면 안되는 오류중 하나 )
  • PRG(POST/REDIRECTION/GET) : POST요청 처리후 GET으로 데이터 조회 후 정보 가져온다 ( 중복 처리 방지 )

 

 

 

 

※모든 내용은 개인이 정리한 것이므로 자주 수정 되고 틀릴 가능성이 매우 높으니 참고만 해주세요.

'CS지식' 카테고리의 다른 글

[Java] 신입 개발자 면접 예상 질문  (0) 2024.05.06