개발노트

GET 방식 / POST 방식 본문

Programming/Server

GET 방식 / POST 방식

dev? 2022. 5. 23. 20:09
반응형

GET 메서드 / POST 메서드 

- Http 프로토콜이 제공해주는 7가지 메서들 중 하나이다. 

 

 

 


 

HTTP(Hypertext Transfer Protocol)

- 인터넷에서 데이터를 주고 받을 수 있는 프로토콜(통신규약)이다. 

- Web-Client와 Web-Server간 데이터를 전송하는 프로토콜이다.

 

※ 주의 ※

서버의 역할은 '요청에 대한 응답을 보내주는 것'이다. 

2022.05.26 - [Programming/Server] - Apache / Tomcat 개념

 

Apache / Tomcat 개념

Apache ( Apache HTTP Server ) - 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 만든 웹서버 프로그램 웹 서버 ( web server ) - 하드웨어 / 소프트웨어 분야에서 다른 의미로 정의된다...

lifeonguide.tistory.com

 

→ HTTP 통신할 때 보내는 데이터를 'HTTP 패킷' 이다. 

패킷은 Header영역Body 영역으로 나누어진다. 

Header영역 Body 영역

7가지 HTTP 메서드 방식중 무엇을 썻는지, 
클라이언트의 정보, 브라우저 정보,접속할 URL 등등 


보통 비어있거나 특정 데이터를 담아 서버에게 요청

 


 

GET 방식   VS  POST 방식

 

[공통] 

- 두 방식 모두 서버에 요청하는 메서드 이다. 

클라이언트가 서버에 요청할 때 제공해야 하는 자원이 있어야 한다. 

 

Ex)  로그인

클라이언트 요청 → 
← 응답
서버
ID, PW 작성 ID, PW 일치하는지 검사
서버에 '요청' 클라이언트에 '응답'

 

 


 

GET 방식

http://www.example.com?param1=value1&param2=value2

- URL 뒤에 파라미터(클라이언트의 데이터)를 붙여서 보낸다.

 URL뒤에  ?  를 사용하여 URL의 끝이자 데이터 시작을 표시하고,
 &  을 붙여 여러개의 Parameter(클라이언트의 데이터)를 구분 한다. 

 *Parameter(클라이언트의 데이터)는 key와 value 쌍으로 입력하며, & 을 붙여 구분한다.

 

- URL뒤에 붙기 때문에 HTTP 패킷의 Header영역에 포함되어 서버에 요청 되며,  Body 영역에는 빈 상태로 보내진다. 
( Body 데이터를 설명하는 Content-Type이라는 헤더필드는 들어가지 않는다. )

 

- URL 형태로 표현되며, 특정 페이지를 다른 사용자가 접속 가능하다. 

- 데이터를 보내는 양의 한계가 있다.

( 이동되는 파라미터(클라이언트의 데이터)의 문자열만 처리 가능 )

 

 ▶ form 태그를 이용하여 전송(서버에 요청)하는 경우

 - Parameter(클라이언트의 데이터)가 주소창에 표시된다. 
 - Parameter(클라이언트의 데이터) 종류는 '문자열'만 전송 된다. 

 

 


 

POST 방식

- GET 방식과 달리 Body 영역에 데이터를 넣어서 보낸다.  (데이터 전송 기반)

( Body 데이터를 설명하는 Content-Type이라는 헤더필드가 들어가며, 어떤 데이터 타입인지 명시해야한다. )

Header영역 Body 영역
  Content-Type:application/json;

  charset=UTF-8
  ...
  {

  "param1":"value1",

  "param2":"value2"

  }

 

 < Content-Type  종류 >

 1. application/x-www-form-urlencoded
  GET 방식과 동일 - key / value 쌍으로 입력

  2. text/plain
  Body 영역에 txt 입력

  3. multipart/form-data
  파일 전송에 사용
  Body 영역에 바이너리 데이터로 입력 - [JAVA] InputStream/OutputStream 클래스를 통해서 읽고 쓴다.

 

- 데이터 전송에 길이 제한이 없으며, 대용량 데이터 전송 가능하다. 

( Body 영역에 데이터를 넣어서 보내기 때문에) 

 

- URL를 통해  Parameter(클라이언트의 데이터)를 볼 수 없어 GET 방식에 비해 안전하다. 

 

- 페이지 단위로 이동한다. 

 

 ▶ form 태그를 이용하여 전송(서버에 요청)하는 경우

 - Parameter(클라이언트의 데이터)가 주소창에 표시되지 않는다.
 - Parameter(클라이언트의 데이터) 종류는 기본적으로 '문자열'로 전송된다. 
 - form 태그의 enctype 속성을 통해 바이너리 형태로 전달 가능

 

 


 

 

[ 차이 ]

  GET 방식   POST 방식
  - Header 영역에 포함 
  - Parameter(클라이언트의 데이터) 보여짐
  - Parameter(클라이언트의 데이터) 길이 제한
  - Body 영역에 포함
  - Parameter(클라이언트의 데이터) 보여지지 않음
  - Parameter(클라이언트의 데이터)의 길이 제한이 없음 
    ( 대용량 데이터 전송 가능) 

 

 

 

 

 

 

 

https://khj93.tistory.com/entry/GET-%EB%B0%A9%EC%8B%9D%EA%B3%BC-POST-%EB%B0%A9%EC%8B%9D-%EC%9D%B4%EB%9E%80-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

[네트워크]GET 방식과 POST 방식 이란? 차이점

HTTP GET방식과 POST방식에 대해 알아보기 위해서는 HTTP 프로토콜에 대해 알고 있어야 합니다. HTTP(Hypertext Transfer Protocol)란 하이퍼텍스트 전송 규약으로 Web-Client와 Web-Server간 데이터를 전송하는..

khj93.tistory.com

https://mommoo.tistory.com/60

 

GET방식 과 POST방식

오늘 포스팅 할 내용은, Http 프로토콜이 제공해주는 7가지 메서드들 중 웹서비스 개발에 주로 사용하는, GET 메서드와 POST 메서드에 대하여 기술한다. GET메서드 POST메서드 란? 위에서 말했다시피,

mommoo.tistory.com

https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da

 

https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da

 

www.zerocho.com

 

반응형

'Programming > Server' 카테고리의 다른 글

Apache / Tomcat 개념  (0) 2022.05.26
URL 구조  (0) 2022.05.24
IP 주소  (0) 2022.05.18
Tomcat 완전 삭제 방법  (0) 2022.03.14
Tomcat(9.0) 서버 Eclipse 연결  (0) 2022.02.08