GET과 POST의 차이

박희주·2022년 9월 1일
0

오늘의 지식

목록 보기
3/4

GET과 POST의 차이? (간단하게)

일단 GET과 POST의 차이를 보기 전에 GET은 무엇이고 POST는 무엇일까?
먼저 두 가지 모두 HTTP Method중 일부이며 HTTP란 Hypertext Transfer Protocol의 줄임말로 하이퍼텍스트 전송 규약이라고 직역할 수 있다.
즉, 클라이언트와 서버 간의 통신 규약으로 보면 된다.

HTTP Method는 아래의 종류가 있다.

  • GET
  • POST
  • PUT
  • HEAD
  • PATCH
  • DELETE
  • OPTIONS
  • CONNCECT
  • TRACE

이렇게 있으며 그 중 가장 보편적으로 사용되는 method는 GET과 POST이다.
이번 글에서는 가장 보편적으로 활용되는 GET과 POST의 차이를 알아보려고 한다.

1. GET

GET은 클라이언트에서 서버로 어떠한 리소스 정보를 요청하기 위해 사용되는 method로 우리가 인터넷을 한다면 누구나 GET요청을 할 수 있다.
바로 인터넷 브라우저를 사용해서 URL을 직접 입력해 특정 사이트를 찾아 들어가는 것이다.

예시) GET /test/demo_form.php?name1=value1&name2=value2

1-1. GET 요청의 특징

GET 요청은 아래와 같은 특징을 지니고 있다.

  • 캐시 될 수 있다.
  • 브라우저 히스토리에 남는다.
  • 북마크 될 수 있다.
  • 민감한 정보는 절대 담아선 안됀다.
  • 요청 할 때 길이의 제한이 있다.
  • 데이터를 요청 할 때만 사용된다.

금지되어있는 것은 아니지만 GET요청에 본문이나 페이로드가 담겨있으면 의미가 정의되지 않아 기존에 존재하는 구현체에게 요청을 거부 당할 수 있어 이러한 이유로 GET요청에는 무언가 내용을 담는 것은 적절하지 않다.

2. POST

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트 하기 위해 데이터를 보낼 때 사용되는 method이다. URL에 내용물이나 변수들을 노출시키지 않고 BODY에 담아서 보내기 때문에 보안성을 갖추고 있다.

예시) POST /test/demo_form.php HTTP/1.1
	 Host: w3schools.com
     name1=value1&name2=value2

2-1. POST 요청의 특징

POST 요청은 아래와 같은 특징을 지니고 있다.

  • 캐시가 절대 되지 않는다.
  • 브라우저 히스토리에 남지 않는다.
  • 북마크 될 수 없다.
  • 데이터의 길이 제한이 없다.

3. 결론

특 징GETPOST
URL에 데이터 노출여부OX
가시성URL에 모든 데이터가 보여짐URL에 노출되지 않음
URL예시http://localhost:8080/test/demo_form.php?name1=value1&name2=value2http://localhost:8080/test/demo_from.php
데이터의 위치Header(헤더)Body(바디)
캐싱 가능 여부OX
인코딩 타입application/x-www-form-urlencodedapplication/x-www-form-urlencoded or multipart/form-data
보안성URL에 노출되고 브라우저 히스토리에도 남기에 민감한 정보는 절대 GET요청을 통해 보내지 말것!GET요청에 비해 노출되는 URL에 노출되는 것 없이 Body에 담겨 가기 때문에 보안성은 GET에 비해 우수

참고자료

  1. W3School
  2. 취준 목적 CS공부중인 Notion
profile
하나부터 열까지, 머리부터 발 끝까지

0개의 댓글