반응형

- HTTP 프로토콜을 이용해서 서버에 데이터(resource)를 전달할 때 사용하는 방식

1. GET 방식

1) 개념
정보를 조회하기 위한 메서드 (수행하는 것 : Select)
서버에서 어떤 데이터를 가져와서 보여주기 위한 용도의 메서드 

2) 사용방법
URL의 끝에 ‘?’ 가 붙고, 요청정보가 (key=value) 형태의 쌍을 이루어 서버로 전송된다.
요청정보가 여러개일 경우 ‘&’ 로 구분한다. 
Ex) www.urladdress.xyz?name1=value1&name2=value2 
3) 특징
URL에 요청정보를 붙여서 전송한다.
URL에 요청정보가 이어붙이는데, 길이제한이 있어서 대용량 데이터를 전송하기 어렵다
>> 한 번 전송 시 전송데이터(주소값+파라미터)의 양은 255자로 제한됨.
>> (HTTP/1.1은 2048자) 
요청 정보를 사용자가 쉽게 눈으로 확인할 수 있다. (보안 취약)
HTTP 패킷의 바디는 비어있는 상태로 전송한다.
>> 즉, Body의 데이터 타입을 표현하는 ‘Content-Type’ 필드도 HTTP Request 
     Header 에 들어가지 않는다.  
POST 방식보다 빠르다.
>> GET 방식은 캐싱을 사용할 수 있어, GET 요청과 그에 대한 응답이 브라우저에 의해 캐쉬된다.

2. POST 방식

2. POST 방식
1) 개념
서버의 값이나 상태를 바꾸기 위한 용도의 메서드
수행하는 것(Insert, Update, Delete)
2) 사용방법
요청 정보를 HTTP 패킷의 Body에 숨겨서 서버로 전송한다. 
Request Header의 Content-Type에 해당 데이터 타입이 표현되며, 전송하고자 하는 데이터 타입을 적어주어야 한다.
Default : application/octet-stream
단순 txt의 경우 : text/plain
파일의 경우 : multipart/form-date
3) 특징
Body 안에 숨겨서 데이터를 전송하기 때문에 보다 많은 양의 데이터를 전송하기에 적합하다.(용량제한은 존재.)
클라이언트 쪽에서 데이터를 인코딩하여 서버로 전송하고, 이를 받은 서버쪽이 해당 데이터를 디코딩 한다.
GET 방식보다 보안상 안전하다.

Q. 조회하기 위한 용도로 POST가 아닌 GET을 사용하는 이유?
설계 원칙에 따라 GET 방식은 서버에게 여러 번 요청을 하더라도 동일한 응답이 와야 한다. 
GET 방식은 가져오는 것(Select)이므로, 서버의 데이터나 상태를 변경시키지 않아야 한다
>> 게시판의 리스트, 게시글 보기 기능
>> 예외 : 방문자의 로그남기기, 조회수 증가 기능

POST 방식은 수행하는 것으로, 서버의 값이나 상태를 바꾸기 위한 용도.
>> 게시판 글 쓰기 기능 

웹에서 모든 URI는 Link 할 수 있는 URL을 가지고 있어야 한다.
>> 어떤 웹 페이지를 보고 있을 때, 그 사람에게 다른 주소를 주기 위해서 주소창의 URL을 복사해서 줄 수 있어야 한다.
즉, 어떤 웹페이지를 조회할 때, 원하는 페이지로 바로 이동하거나 이동시키기 위해서는 해당 링크의 정보가 필요하다.
POST 방식을 사용할 경우에 값(링크의 정보)이 body에 있기 때문에 URL 만 전달할 수 없으므로 GET방식을 사용해야 한다. 그러나 글을 저장하는 경우에는 URL을 제공할 필요가 없기 때문에 POST 방식을 사용한다. 

반응형

'Applied > Network' 카테고리의 다른 글

IP Address와 MAC Address 개념  (0) 2019.08.14
로드 밸런싱(load balancing)이란  (0) 2019.06.27
HTML과 XML차이  (3) 2019.05.20
DHCP, DNS란 무엇인가?  (0) 2018.11.29
브라우저 작동 원리 및 http 통신 원리  (0) 2018.11.25