Get 방식과 Post방식

 

GET 방식

ex)https://n.news.naver.com/article/005/0001518197?cds=news_media_pc

https://n.news.naver.com/article/005/0001518197 ? → 요청 페이지

cds=news_media_pc → 전송 데이터

  • 주소 + 데이터(모두 노출)
  • 기본 전송 방식이고 사용이 쉽다.
  • 전송할 데이터를 문자열 형태(Query String)로 URL 뒤에 인수로 붙여서 전송을 수행하는 방법(방식)
  • URL 뒤에 인수로 붙어있는 내용을 누구나 볼 수 있고 이로 인해 보안성이 취약하다.
  • <form> 태그에서의 GET 방식은 서버로 데이터를 전송하는 과정에서 서버 처리가 지연될 경우 중복해서 요청이 이루어진다는 문제가 발생할 수 있다는 단점을 가지고 있다.
  • 형식 및 구조 『URL주소?속성=데이터&속성=데이터&....』 『URL주소?name=value&tel=value2&...』
  • 여러 개의 데이터를 전송할 때 ‘&(앰퍼샌드)’로 구분해서 전송한다.
  • GET 방식은 서버에서 데이터를 가지고 와서 보여준다거나 하는 용도로 주로 사용한다. 서버의 값이나 상태를 바꾸는 용도로는 사용하지 않는다. 즉, 단순 페이지 요청에 많이 사용된다는 것이다.
  • 서블릿에서는 doGet()을 이용해 데이터를 처리한다.
  • GET 방식의 장점
  • 여러가지 형태를 통해 간편한 데이터 전송이 가능하다. POST 방식처럼 form 태그를 사용하여 전송도 하고, 링크에 직접 걸어 사용해도 되고, 주소창에 직접 입력해도 된다. ex) <a href="http://url?키=값&키=값"> <form action="http://url?키=값&키=값"> window.open(href="http://url?키=값&키=값"); window.location.href="http://url?키=값&키=값"; window.location.replace("http://url?키=값&키=값");

 

POST 방식

ex) http://localhost:8090/WebApp06/Test001.jsp

  • 주소만 노출 / 데이터는 숨김
  • <form> 태그에서 method 속성을 "post"로 설정해서 요청
  • 파일의 형태로 전송되기 때문에 URL 상에서는 내용이 나타나지 않는다. 이로 인해 GET 방식에 비해 보안성이 높다고 할 수 있다.
  • POST 방식은 HTTP Body 안에 숨겨져서 전송된다.
  • GET 방식처럼 URL 뒷부분에 추가해서 보내는 것이 아니라 HTTP Body 안에 넣어서 보내기 때문에 GET 방식에서 발생할 수 있는 보안성 문제를 어느정도 해결할 수 있다.
  • GET 방식에 비해 대용량의 데이터를 전송할 때 사용한다.(전송 데이터 용량은 무제한이다.)
  • 전송 시 서블릿에서는 또 다시 가져오는 작업을 해야 하므로 처리 속도가 GET방식보다 느리다.
  • 서블릿에서는 doPost()를 이용해 데이터를 처리한다.
  • <form> 태그를 이용해서 submit 하는 일반적인 형태가 POST 방식이다.
  • POST 방식은 서버의 값이나 상태를 바꾸기 위해 주로 사용한다. 글쓰기를 하게 되면 글의 내용이 데이터베이스에 저장되고 수정을 하게되면 데이터베이스에 수정된 값이 적용될 수 있도록 처리하는 구성이다.

 

'CS > Web' 카테고리의 다른 글

CGI, ASGI, WSGI  (0) 2023.04.12
HTML과 HTML5의 차이점  (0) 2023.02.07
쿠키와 세션  (0) 2023.01.19