GET 이란 ?
GET은 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드이다.
ex) 게시판의 게시물 조회할 때 사용
GET을 통한 요청은 URL 주소 끝에 파라미터(변수)로 포함되어 전송되며, 이 부분을 쿼리 스트링(query string) 이라 한다.
예를 들어 아래와 같은 방식이다
www.example.com/test?id=user&pw=1234
서버에서는 id 와 pw라는 파라미터(변수)명으로 각각 user 와 1234 라는 파라미터 값을 전달 받을 수 있다.
특징
- GET 요청은 캐시가 가능하다.
- GET 요청은 브라우저 히스토리에 남는다.
- GET 요청은 북마크 될 수 있다.
- GET 요청은 길이 제한이 있다.(브라우저마다 제한이 다르다)
- GET 요청은 파라미터가 다 노출되기 때문에 ID와 비밀번호 등 보안 요소가 있는 경우 사용하면 안된다.
- GET은 데이터 요청시에만 사용 된다.
POST 란 ?
POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트 하기 위해 데이터를 보낼 때 사용되는 메서드이다.
ex) 게시판에 게시글 작성하는 작업 등을 할 때 사용된다.
POST는 전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 보낸다.
(body의 타입은 Content-Type 헤더에 따라 결정 된다.)
GET 에서 URL 의 파라미터로 보냈던 id=user&pw=1234 가 body에 담겨 보내진다고 생각하면 된다.
POST 로 데이터를 전송할 때 길이 제한이 따로 없어 용량이 큰 데이터를 보낼 때 사용하거나 GET처럼 데이터가
외부적으로 드러나는건 아니라서 보안이 필요한 부분에 많이 사용된다.
(하지만 데이터를 암호화하지 않으면 body의 데이터도 결국 볼 수 있는건 똑같다.)
POST를 통한 데이터 전송은 보통 HTML form 을 통해 서버로 전송된다.
특징
- POST 요청은 캐시되지 않는다.
- POST 요청은 브라우저 히스토리에 남지 않는다.
- POST 요청은 북마크 되지 않는다.
- POST 요청은 데이터 길이에 제한이 없다.
GET과 POST의 차이점
GET : 파라미터 노출, 데이터 요청(SELECT 와 유사), HTTP 메시지에 body가 없다.
POST : 히스토리에 안남는다, 서버리소스 새로생성 or 업데이트(CREATE 와 유사), HTTP 메시지에 body가 있다.
'IT 지식 > IT 정보' 카테고리의 다른 글
SEED 암호화 개념 (0) | 2022.12.12 |
---|---|
RSA 공개키 암호화 알고리즘 (0) | 2022.12.09 |
웹사이트와 브라우저 (0) | 2022.10.18 |
SSL, TLS, HTTPS 설명 (0) | 2022.10.12 |
APM Setup 설치 및 간단한 문제 풀기 (0) | 2022.10.12 |