기록공간

GET vs POST 본문

Network

GET vs POST

입코딩 2020. 11. 21. 17:34
반응형

GET 방식

ex) https://news.naver.com/main/list.nhn?mode=LSD&mid=sec&sid1=001

     가.  https://news.naver.com/main/list.nhn          ?    →   요청 페이지 (주소)
     나.  mode=LSD    &    mid=sec    &    sid1=001               →   전송 데이터 (데이터)
  • GET 방식은 엽서를 보내는 방식과 유사한 전송/요청 방식이다.

  • 주소 + 데이터 가 모두 노출되며 서로 묶여있다. 

  • 전송할 데이터를 문자열 형태(Query String)로 URL 뒤에 인수로 붙여서 전송하는 방법(방식)이다.

  • URL 뒤에 인수로 붙어있는 내용을 누구나 볼 수 있고 이로 인해 보안성이 취약하다.

  • GET 방식은 보낼 수 있는 데이터 양에 한계가 존재하기 때문에(과거에..) 많은 데이터를 보내는 경우 일정 크기 이상에서 잘림현상이 발생한다. (길이 제한을 가진다는 의미, URL 최대 길이 2048 char) 요즘은 길이 제한이 없지만, 과도한 길이의 URL은 지양된다.

  • <form> 태그에서의 GET 방식은 서버로 데이터를 전송하는 과정에서 서버 처리가 지연될 경우 중복해서 요청이 이루어진다는 문제가 발생할 수 있다.

  • 형식 및 구조

『URL주소?속성=데이터&속성=데이터&...』
『URL주소?name=value&tel=value&...』
  • GET 방식은 select 적인 성격(성향)을 가지고 있다. 서버에서 데이터를 가지고 와서 보여준다거나 하는 용도로 주로 사용한다. 서버의 값이나 상태를 바꾸는 용도로는 가급적 사용하지 않는다. 즉, 단순 페이지 요청에 많이 사용된다

  • GET 방식의 장점은 여러가지 형태를 통해 간편한 데이터 전송이 가능하다는 것이다. POST 방식처럼 form 태그를 사용하여 전송도 하고, 링크에 직접 걸어 사용해도 되고, 주소창에 직접 입력해도 된다.

ex)

<a href="http://URL?키=값&키=값">
<form action="http://URL?키=값&키=값">
window.open(href="URL?키=값&키=값");
window.location.href="URL?키=값&키=값";
window.location.replace("http://URL?키=값&키=값");

 

POST 방식

 ex) http://localhost:8090/WebApp06/Send01.html

뒤에 데이터가 없이 요청 주소만 나타남
  • post 방식은 편지를 보내는 방식과 유사한 전송/요청 방식

  • 주소만 노출, 데이터는 숨긴다.

  • <form> 태그에서 method 속성을 "post"로 설정해서 요청한다.

  • 파일의 형태로 전송되기 때문에 URL 상에서는 그 내용이 나타나지 않는다. 이로 인해 GET 방식에 비해 보안성이 높다고 할 수 있다.

  • POST 방식은 HTTP Body 안에 숨겨져서 전송된다.

  • GET 방식처럼 URL 뒷부분에 추가해서 보내는 것이 아니라 HTTP Body 안에 넣어서 보내기 때문에 GET 방식에서 발생할 수 있는 보안성 문제를 어느정도 해결할 수 있다. 

  • GET 방식에 비해 대용량의 데이터를 전송할 때 사용한다.

  • <form> 태그를 이용해서 submit 하는 일반적인 형태가 POST 방식이다. 

  • POST 방식은 서버의 값이나 상태를 바꾸기 위해 주로 사용한다. 글쓰기를 하게 되면 글의 내용이 데이터베이스에 저장되고 수정을 하게 되면 데이터베이스에 수정된 값이 적용될 수 있도록 처리하는 구성인 것이다.

반응형

'Network' 카테고리의 다른 글

WebRTC란?  (0) 2021.09.03
[서버 가이드북] 2. 네트워크 기초 지식  (0) 2021.07.27
[서버 가이드북] 1. 서버(Server) 란?  (1) 2021.07.21
[TCP] 3-way-handshake & 4-way-handshake  (0) 2021.07.14
웹 애플리케이션  (0) 2020.11.21
Comments