HTTP METHOD에는 get, post, put, delete 가 있다.
단순히 종류를 나열하는 것이 아닌 get과 post 간의 차이점에 대해 말할 수 있어야 한다.
get은 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 method입니다.
서버에서 어떤 데이터를 가져와서 보여줄 때, 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용합니다.
post는 리소스를 생성/ 업데이트하기 위해 서버에 데이터를 보내는 데 사용되는 method입니다.
서버상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다.
주요 차이점으로는, get 요청은 캐시가 되나, post는 캐시 되지 않습니다. get은 브라우저에 기록되지만 post는 기록되지 않습니다.
GET
GET은 지정된 리소스에서 데이터를 요청하는 데 사용된다.
GET을 통한 요청은 URL주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리스트링(query string) 이라고 부른다.
방식은 URL 끝에 "?"을 붙이고 그 다음 변수1=값1&변수2=값2... 형식으로 이어서 붙인다.
예) /test/demo_form.php?name1=value1&name2=value2
서버에서는 name1과 name2라는 파라미터 명으로 각각 value1과 value2의 값을 전달받을 수 있다.
GET의 특징
- GET 요청은 캐시가 가능하다 : GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드 하는 대신 리소스의 복사본을 반환한다.
- GET 요청은 브라우저 기록에 남아 있습니다.
- GET 요청을 북마크할 수 있습니다.
- GET 요청은 민감한 데이터를 처리할 때 사용해서는 안 됩니다.
- GET 요청에는 길이 제한이 있습니다.
- GET 요청은 데이터를 요청하는 데만 사용됩니다(수정 아님).
POST
POST는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용된다.
POST는 전송할 데이터를 HTTP 메시지의 body부분에 담아서 서버로 보낸다. post로 데이터를 전송할 때는 길이제한이 없기 때문에 용량이 큰 데이터를 보낼 때 사용한다. GET처럼 데이터가 URL에서 드러나지 않기 때문에 보안이 필요한 부분에 사용되지만, post 요청도 데이터를 암호화 하지 않으면 body의 데이터를 볼 수 있다.
POST 특징
- POST 요청은 캐시되지 않습니다
- POST 요청은 브라우저 기록에 남아 있지 않습니다.
- POST 요청은 북마크할 수 없습니다.
- POST 요청에는 데이터 길이에 대한 제한이 없습니다.
GET과 POST의 차이점
차이점 | GET | POST |
요청 캐시 | O | X |
브라우저 기록 | O | X |
북마크 추가 | O | X |
데이터 길이 제한 | O | X |
HTTP 응답 코드 | 200(Ok) | 201(Created) |
언제 사용하는가? | 리소스 요청 | 리소스 생성 |
리소스 전달 방식 | 쿼리스트링 | HTTP Body |
멱등성 | O | X |
멱등성
연산을 여러번 적용하더라도 결과가 달라지지 않는 성질
GET 요청은 리소스를 어떤 데이터를 가져와서 보여줄 때, 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용하기 때문에 여러번 수행하더라도 결과가 동일하게 나타나는 멱등성을 가지고 있다.
Reference
https://www.w3schools.com/tags/ref_httpmethods.asp
https://ko.wikipedia.org/wiki/%EB%A9%B1%EB%93%B1%EB%B2%95%EC%B9%99
'#기술면접' 카테고리의 다른 글
개발자 이직 면접 질문 리스트 : 1년 6개월 경력 주니어 백엔드 개발자, 풀스택 개발자 (3) | 2024.09.23 |
---|---|
자바의 특징과 장단점은 무엇인가요? (0) | 2023.10.05 |