GET은 가져온다는 개념이고, POST는 수행한다는 개념으로 받아들이면 쉽습니다.
즉, GET은 서버에서 어떤 데이터를 가져와서 보여줄 때 사용합니다.
어떤 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용하는 것입니다.
이에 비해, POST는 서버 상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다.
게시판을 예로 들었을 때 글의 내용에 대한 목록을 보여주는 경우나, 글의 내용을 보는 경우는 GET에 해당합니다.
그리고 글의 내용을 저장하고, 수정할 때에 POST를 사용합니다.
[ GET이란? ]
GET method는 클라이언트에서 서버로, 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메서드입니다.
좀 더 쉽게 말하면, 데이터를 읽거나(Read), 검색(Retrieve) 할 때에 사용되는 method 입니다.
GET은 요청을 전송할 때 URL 주소 끝에 파라미터로 포함되어 전송되며,
이 부분을 쿼리 스트링(QueryStrinh)이라고 합니다.
그리고 GET 요청은 오로지 데이터를 읽을 때만 사용되고 수정할 때는 사용하지 않습니다.
따라서 이런 이유로 사용하면 안전하다고 간주합니다.
즉, 데이터의 변형의 위험 없이 사용할 수 있다는 뜻입니다.
[ POST란? ]
POST method는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용합니다.
GET과 달리 전송해야 될 데이터를 HTTP 메시지의 Body에 담아서 전송합니다.
그리고 그 Body의 타입은 요청 헤더의 Context-Type에 요청 데이터의 타입을 표시하여 결정합니다.
(POST로 요청을 보낼 때 기재합니다.)
HTTP 메시지의 Body는 길이의 제한 없이 데이터를 전송할 수 있습니다.
그래서 POST 요청은 GET과 달리 대용량 데이터를 전송 할 수 있습니다.
이처럼 POST는 데이터가 Body로 전송되고,
내용이 눈에 보이지 않아 GET 보다 보안적인 면에서 안전하다고 생각할 수 있지만,
POST 요청도 크롬의 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에
민감한 데이터의 경우에는 반드시 암호화를 진행하여 전송해야 합니다.
'항해 후 > 예상 질문' 카테고리의 다른 글
Redux (0) | 2022.02.04 |
---|---|
Array vs LinkedList (0) | 2022.02.04 |
Life Cycle Method (라이프 사이클 메소드) (0) | 2022.02.04 |
TCP/UDP (0) | 2022.02.03 |
프로그램, 프로세스, 스레드란? (0) | 2022.02.03 |
댓글