현재
HTTP 기본 지식 본문
<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 |
|---|