1. HTTP 메소드
- HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냄
- 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합간에 서로 공유하기도 함
1-1. REST(Representational State Transfer)
- REST의 탄생
2000년도에 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개됨
로이 필딩은 그 당시 웹(HTTP)설꼐의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표함 - 지원(Resource) : URI
- 행위(Verb) : HTTP Method
- 표현(Representations)
▶HTTP Method : REST를 지키면서 행위를 전달하는 방법
2. HTTP 메소드 종류
- GET(조회) : 서버로부터 데이터를 취득
- POST(등록) : 서버에 데이터를 추가, 작성
- PUT(수정) : 서버의 데이터를 갱신, 작성
- PATCH : 리소스의 일부분을 수정
- DELETE(삭제) : 서버의 데이터를 삭제
- HEAD : 서버의 리소스의 헤더(메타 데이터의 취득)
- OPTIONS : 리소스가 지원하고 있는 메소드의 취득
- CONNECT : 프록시 동작의 터널 접속을 변경
**멱등성(Idempotence) : 여러번 수행해도 결과가 같음을 의미 ▶ 호출로 인하여 데이터가 변형되지 않는다는 것을 의미
2-1. GET
- 리소스 조회에 사용(읽기Read, 검색Retrieve)
- 서버에 전달하고 싶은 데이터를 query(parameter, query string)을 통해 전달
▶ 메시지 바디를 통해 데이터를 전달 할 수도 있지만 지원하지 않는 곳도 존재하기 때문에 권장x - GET의 성공적 요청 : XML이나 JSON과 함꼐 200(ok) HTTP응답 코드를 리턴
- 에러 발생 시 : 404(Not found)에러나 400(Bad request)에러 발생
- 조회할 데이터에 대한 정보는 URL을 통해 파라미터를 받음
- GET는 캐싱이 가능하여 같은 데이터를 한번 더 조회 할 경우에 저장한 값을 사용하여 조회 속도가 빨라짐
1. HTTP명세에 의하면 GET요청은 데이터를 읽을떄만 사용되고 수정할때는 사용하지 않음
2. GET요청은 idempotent함
3. 데이터를 변경하는 연산에 사용하면 안됨
2-2. POST
- 새로운 리소스를 생성(Create)
▶ POST는 하위리소스(부모 리소스의 하위 리소스)들을 생성하는데 사용 - 메시지 바디를 통해 서버로 요청 데이터를 전달
- POST의 성공적 요청 : 201(Created) HTTP응답 반환
- URL을 통해 데이터를 받지 않고, Body값을 통해 데이터를 받음
▶ 데이터 조회에 성공한다면 Body값에 저장한 데이터 값을 저장하여 성공 응답을 보냄
1. POST요청은 idempotent하지 않음
2. 두 개의 같은 POST 요청을 보내면 같은 정보를 담은 두 개의 다른 resource를 반환 할 가능성이 높음
2-3. PUT
- resource를 생성, 업데이트하기 위해 서버로 데이터를 보낼때 사용
- POST와 PUT은 어떻게 구분하여 사용?
▶ PUT은 클라이언트가 리소스의 위치를 알고 URI를 지정해 주어야함
▶ PUT : 사용자가 데이터를 지정하고 수정하는것이기때문에 데이터가 계속 생성되지 않음
▶ POST : 새로운 데이터를 개속 생성하기 떄문에 요청시마다 데이터를 생성 - URL를 통해 어떤 데이터를 수정할지 파라미터르 받음 ▶ 수정할 데이터 값을 Body값을 통해 받음
1. PUT요청은 idempotent함
2-4. PATCH
- resource를 부분적으로 변경
- 지원하지 않은 경우도 있어 이런 경우 POST로 대체하여 사용
- PATCH와 PUT의 차이
▶PATCH : 리소스의 일부 업데이트, idempotent하다고 볼 수 없음
▶PUT : 리소스의 모든 것을 업데이트, idempotent함
2-5. DELETE
- 지정된 resource 삭제
- URL을 통해 파라미터를 받음
3. HTTP 메소드 속성
참고)
https://girawhale.tistory.com/66
HTTP 메소드의 종류와 특징, 속성
HTTP 메소드 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정한다 주요 메소드 종류 GET 리소스의 조회에 사용한다. 서버에 전달하고 싶은 데이터를 query(parameter, query string
girawhale.tistory.com
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
HTTP 요청 메서드 - HTTP | MDN
HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부
developer.mozilla.org
https://velog.io/@yh20studio/CS-Http-Method-%EB%9E%80-GET-POST-PUT-DELETE
Http Method 란? (GET, POST, PUT, DELETE)
평소에 코딩을 하면서 서버와 클라이언트가 소통을 하기 위해서 보통 Http를 이용을 하게 되었습니다. 그런데 GET, POST, PUT, DELETE 등 여러가지의 Http Method 가 존재하는데 명확하게 사용하고 있을까?
velog.io
'CS지식 > 개발 상식' 카테고리의 다른 글
[CS지식 - 개발상식]devops란? (0) | 2023.01.25 |
---|---|
[CS 지식 - 개발 상식] 프레임워크 vs 라이브러리 (0) | 2023.01.15 |
[CS지식 - 개발 상식] 메모리 구조 (0) | 2023.01.15 |
[CS 지식 - 개발 상식] Ajax & axios & fetch (0) | 2023.01.12 |
[CS 지식 - 개발 상식] Web Server와 WAS의 차이 (0) | 2023.01.12 |