네트워크 전송에서의 Get / Post 방식
웹 페이지 실행과정
1. 사용자가 원하는 페이지로 이동하기 위해 URL을 브라우저 주소창에 작성
2. Enter키 입력 시, Server 내부에서 Client(사용자)의 요청에 응답하기 위해 처리
3. 입력된 주소에 해당하는 웹 페이지를 Client(사용자)에게 화면으로 표현
용어 정리
- HTTP(Hyper Text Tranfer Protocol) : 웹 클라이언트와 웹 서버간 전송을 위한 통신규약
- 하이퍼 텍스트(Hyper Text) : 사용자가 원하는 부분을 비순차적으로 읽어내는 문서 형식
(일반적인 Text의 경우, 위에서 아래로 순차적으로 읽어 내림)
Get / Post 방식은 HTTP 프로토콜에서 데이터 전송을 위해 지원하는 7가지 메소드 중 일부인 메소드이다.
사용한 메소드 방식의 종류에 따라 HTTP 패킷 구조의 Body 영역의 사용 유무 및 방법이 달라진다.
GET 방식(Method)
URL에 Parameter를 붙여서 전송하는 방식
http://bmind305.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F |
-
URL뒤에 ?를 사용하여 Parameter를 작성하고 &을 붙여 여러 Parameter를 구분하는 Query Stirng을 사용한다.
-
URL에 Parameter를 전송하기 때문에 body영역을 사용하지 않는다.
-
또한 URL에 데이터를 실어 보내기 때문에 대용량 데이터 전송을 하기에는 제한이 있다.
-
한번 요청시 URL포함 255자 까지 전송이 가능하며 HTTP/1.1 에서는 2048자 까지 가능하다.
- 멱등적 설계로, 서버의 데이터나 상태를 변경시키지 않는 조회 시(웹페이지 방문, 특정 사용자 정보 조회)에만 사용
GET 방식의 HTTP 데이터 패킷 구조
Header | Body |
Method 방식 정보, 전송 방식, 요청 페이지 주소, 전송 데이터 등 | X |
POST 방식(Method)
body영역에 데이터를 실어 보내는 방식
ex) HEADER 영역 Content-Type:application/json; charset=UTF-8 .....
BODY 영역 { "param1":"value1", "param2":"value2" }
|
-
데이터 전송양에 길이 제한이 없으며 대용량 데이터를 보내는데 적합
-
또한 POST로 데이터를 전송할때에는 Body영역 데이터 타입을 Header Content-Type에 명시를 해줘야 한다.
-
POST방식은 GET방식과는 달리 보내는 데이터를 URL를 통해 볼 수 없어 보안적으로 안전하다.
- 비멱등적 설계로, 서버의 상태나 데이터를 변경시킬 때 사용
POST 방식의 HTTP 데이터 패킷 구조
Header | Body |
Method 방식 정보, 전송 방식, 요청 페이지 주소 등 | 사용자가 요청한 데이터 |