일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- CSS
- Excel
- 자바
- HTML
- spring 오류
- 한글 깨짐
- elasticsearch
- db
- JSP
- Eclipse
- jQuery
- eclipse 설정
- 자바 리스트
- 인텔리제이
- spring form
- 도커
- 데이터베이스
- tomcat
- 자바스크립트
- 형변환
- 이클립스 설정
- 쿼리
- docker
- Java
- 에러
- 이클립스
- JavaScript
- 엑셀
- java 오류
- 엘라스틱서치
- Today
- Total
개발노트
GET 방식 / POST 방식 본문
GET 메서드 / POST 메서드
- Http 프로토콜이 제공해주는 7가지 메서드들 중 하나이다.
HTTP(Hypertext Transfer Protocol)
- 인터넷에서 데이터를 주고 받을 수 있는 프로토콜(통신규약)이다.
- Web-Client와 Web-Server간 데이터를 전송하는 프로토콜이다.
※ 주의 ※
서버의 역할은 '요청에 대한 응답을 보내주는 것'이다.
2022.05.26 - [Programming/Server] - Apache / Tomcat 개념
→ HTTP 통신할 때 보내는 데이터를 'HTTP 패킷' 이다.
패킷은 Header영역과 Body 영역으로 나누어진다.
Header영역 | Body 영역 |
7가지 HTTP 메서드 방식중 무엇을 썻는지, 클라이언트의 정보, 브라우저 정보,접속할 URL 등등 |
보통 비어있거나 특정 데이터를 담아 서버에게 요청 |
GET 방식 VS POST 방식
[공통]
- 두 방식 모두 서버에 요청하는 메서드 이다.
클라이언트가 서버에 요청할 때 제공해야 하는 자원이 있어야 한다.
Ex) 로그인
클라이언트 | 요청 → ← 응답 |
서버 |
ID, PW 작성 | ID, PW 일치하는지 검사 | |
서버에 '요청' | 클라이언트에 '응답' |
GET 방식
http://www.example.com?param1=value1¶m2=value2
- URL 뒤에 파라미터(클라이언트의 데이터)를 붙여서 보낸다.
URL뒤에 ? 를 사용하여 URL의 끝이자 데이터 시작을 표시하고, & 을 붙여 여러개의 Parameter(클라이언트의 데이터)를 구분 한다. *Parameter(클라이언트의 데이터)는 key와 value 쌍으로 입력하며, & 을 붙여 구분한다. |
- URL뒤에 붙기 때문에 HTTP 패킷의 Header영역에 포함되어 서버에 요청 되며, Body 영역에는 빈 상태로 보내진다.
( Body 데이터를 설명하는 Content-Type이라는 헤더필드는 들어가지 않는다. )
- URL 형태로 표현되며, 특정 페이지를 다른 사용자가 접속 가능하다.
- 데이터를 보내는 양의 한계가 있다.
( 이동되는 파라미터(클라이언트의 데이터)의 문자열만 처리 가능 )
▶ form 태그를 이용하여 전송(서버에 요청)하는 경우 - Parameter(클라이언트의 데이터)가 주소창에 표시된다. - Parameter(클라이언트의 데이터) 종류는 '문자열'만 전송 된다. |
POST 방식
- GET 방식과 달리 Body 영역에 데이터를 넣어서 보낸다. (데이터 전송 기반)
( Body 데이터를 설명하는 Content-Type이라는 헤더필드가 들어가며, 어떤 데이터 타입인지 명시해야한다. )
Header영역 | Body 영역 |
Content-Type:application/json; charset=UTF-8 ... |
{ "param1":"value1", "param2":"value2" } |
< Content-Type 종류 > 1. application/x-www-form-urlencoded GET 방식과 동일 - key / value 쌍으로 입력 2. text/plain Body 영역에 txt 입력 3. multipart/form-data 파일 전송에 사용 Body 영역에 바이너리 데이터로 입력 - [JAVA] InputStream/OutputStream 클래스를 통해서 읽고 쓴다. |
- 데이터 전송에 길이 제한이 없으며, 대용량 데이터 전송 가능하다.
( Body 영역에 데이터를 넣어서 보내기 때문에)
- URL를 통해 Parameter(클라이언트의 데이터)를 볼 수 없어 GET 방식에 비해 안전하다.
- 페이지 단위로 이동한다.
▶ form 태그를 이용하여 전송(서버에 요청)하는 경우 - Parameter(클라이언트의 데이터)가 주소창에 표시되지 않는다. - Parameter(클라이언트의 데이터) 종류는 기본적으로 '문자열'로 전송된다. - form 태그의 enctype 속성을 통해 바이너리 형태로 전달 가능 |
[ 차이 ]
GET 방식 | POST 방식 |
- Header 영역에 포함 - Parameter(클라이언트의 데이터) 보여짐 - Parameter(클라이언트의 데이터) 길이 제한 |
- Body 영역에 포함 - Parameter(클라이언트의 데이터) 보여지지 않음 - Parameter(클라이언트의 데이터)의 길이 제한이 없음 ( 대용량 데이터 전송 가능) |
https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da
'Programming > Server' 카테고리의 다른 글
Apache / Tomcat 개념 (0) | 2022.05.26 |
---|---|
URL 구조 (0) | 2022.05.24 |
IP 주소 (0) | 2022.05.18 |
Tomcat 완전 삭제 방법 (0) | 2022.03.14 |
Tomcat(9.0) 서버 Eclipse 연결 (0) | 2022.02.08 |