본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
Tech.log/네트워크

[GET VS POST]

by SpaciousKitchen 2021. 5. 21.

GET 메소드

GET의 특징
1. URL에 데이터를 포함하여 데이터 조회 하기 적합하다.
2. 바이너리 및 대용량 데이터 전송이 어렵다.
3.요청 라인과 요청 헤더에 크기 제한이 있다.
대용량 url로 인한 문제를 예방하기 위해 웹 서버에 따라 크기를 제한한다.

GET 메소드
1.웹 브라우저 주소창에 URL을 입력하는 경우
2.링크를 클릭하는 경우
3. 입력 폼의 method 속성값이 get인 경우

GET 요청 매게변수 인코딩
서블릿 컨테이너의 URl 인코딩 설정

 

1.웹 브라우저 주소창에 URL을 입력하는 경우

- 웹 브라우저 주소창에 URL을 입력하는 경우 GET요청이다.


2.링크를 클릭하는 경우

- HTML에 <a> 는 GET요청이다.


3. 입력 폼의 method 속성값이 get인 경우

- 링크 폼에 method를 GET으로 한정할 경우이다.

 

GET 요청의 데이터 전달 형식

데이터를 보낼시에는 URL에 붙인다.

 http://localhost:300/blog?post=1&userId=203

 

?:URL과 보낼 데이터 구분
&:데이터 구분
= :매개변수와 이름 그분

 

GET의 사용 예시

✔️ 자료검색,게시글 조회,상품정보 조회

 

GET 요청 매개변수 인코딩

서블릿 컨테이너의 지침에 따라 URI의 인코딩을 설정이 필요하다

 

GET 의 한계

1. 보안
사용자가 주소창에 요청한 정보가 그대로 드러난다.
2.바이너리 데이터 전송 불가
이미지,동영상 같은 바이너리 파일의 데이터는 URL에 붙여서 보낼 수 없다.

 

 

 

POST 메소드

POST의 특징
1. URL에 데이터를 포함않아 노출되지 않는다.
2. 메시지 본문에데이터를 포함한다.
3.바이너리 및 대용량 데이터 전송이 가능하다.

POST 요청 매게변수 인코딩
ServletRequest.setCharacterEncoding() 사용

 

POST요청의 HTTP 요청 정보 예

 


POST 
http://localhost:8080/web02/LoginServlet HTTP/1.1

Host: localhost:8080

Connection: keep-alive

Content-Length
: 24

Cache-Control: max-age=0

Origin: http://localhost:8080

Upgrade-Insecure-Requests: 1

Content-Type

application/x-www-form-urlencoded

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36

Sec-Fetch-User: ?1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

Referer: http://localhost:8080/web02/PostTest.html

Accept-Encoding: gzip, deflate, br

Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7


id=abc123&password=1234*

 

보내는 데이터의 길이를 알려주는 Content-Length 헤더와 보내는 데이터의 형식을 알려주는 Content-Type 헤더가 붙는다. <form> 태그의 입력값은 기본적으로 application/x-www-form-urlencoded 형식으로 보내진다.

 

POST 요청 매개변수 인코딩

ServletRequest 객체의 setCharacterEncoding()을 사용한다.

POST의 문제점과 개선

 

POST도 데이터를 보낼때 '이름=값&이름=값' 형태를 사용한다. 

하지만 이미지와 영상 같은 바이너리 데이터를 보낼때는 문제가 생긴다. 따라서, 바이너리 데이터를 보낼 때는 멀티파트 인코딩 등의 방법을 사용한다.

 

 

'Tech.log > 네트워크' 카테고리의 다른 글

[쿠키(Cookie)와 세션(Session)]  (0) 2021.05.24
[DNS round robin 방식]  (0) 2021.05.23
[CORS란]  (0) 2021.05.20
[HTTP 요청/응답 헤더]  (0) 2021.05.17
[HTTP VS HTTPS]  (0) 2021.05.17

댓글