Request/Response
GET 방식 : 주소창에 직접 원하는 데이터를 적거나 링크를 클릭해서 호출
- 원하는 웹의 주소를 호출할 때 필요한 데이터를 '?', '&' , '=' 를 이용해서 같이 전송하는 방식
- 주소와 필요한 데이터를 한번에 같이 보내기 때문에 단순 링크로 처리되므로 다른 사람들에게 메신저나 SNS등을 통해 쉽게 공유 가능
- GET 방식은 주로 특정한 정보를 조회하는 용도로 사용
쿼리 스트링
- 웹에서 주소창 뒤에 '?'로 시작하는 내용물을 퀴리 스트링(query string)
-무언가를 요구하거나 물어보는 용도로 데이터를 전달하기 위해 사용
- '키=값'의 형태로 데이터를 전달하는데 여러 개의 데이터가 필요한 경우 '&'를 사용한다.
- '키=값' 형태를 파라미터 라고 한다.
localhost:8080/calc/input.jsp?num1=&num2=
(calc.jsp에서 <input>태그의 name속성 값이 num1과 num2로 지정되어 있어서 위와 같은 문자열이 구성된다.)
POST 방식 : 입력 화면에서 핗요한 내용을 작성한 후에 '전송'과 같은 버튼 등을 클릭해서 호출
- 주소와 데이터를 따로 보내는 방식
- 보통 회원 가입이나 로그인 등의 처리가 이에 해당
브라우저에서 서버에 앞선 방식으로 데이터를 요구하는 것을 요청(Request)이라 하고, 서버는 이에 대한 응답(Response) 데이터를 만들어서 브라우저로 보내게 된다.
서버에서 브라우저로 응답(Response)을 보내는 데 서버에서는 이를 정적인 데이터인지 동적인 데이터인지에 따라서 다르게 처리한다.
정적(static)데이터 | - 항상 동일하게 고정된 데이터를 전송하는 방식 - 주로 파일로 고정된 HTML, CSS, 이미지 파일 등의 데이터 |
동적(dynamic)데이터 | - 매번 필요할 때마다 다른 데이터를 동적으로 구성해서 전송하는 방식 |
같은 정적데이터를 보내는 역할만을 수행하는 서버를 웹 서버(Web Server)
동적데이터를 만들어 보내는 경우를 웹 애플리케이션 서버(Web Application Server, WAS)라고 구분한다.
Servlet 기술
Servlet
- 서버에서 동적으로 요청과 응답을 처리할 수 있는 API들을 정의한 것
JSP
- 서블릿과 같은 원리지만 좀 더 HTML을 쉽게 이용할 수 있는 방식으로 코드를 작성할 수 있기 때문에 '서블릿으로는 코드를 이용한 처리, JSP로는 화면 개발'과 같이 역할을 분담해서 개발하는 것이 일반적
서블릿의 실행은 톰캣과 같이 서블릿을 실핼할 수 있는 환경에서 실행이 가능한데 이를 '서블릿 컨테이너'라고 한다.
현재는 톰캣이 서블릿 컨테이너 역할을 하고 있다.
서블릿 컨테이너
- 객체를 생성하거나 호출하는 주체는 사용자가 아닌 서블릿 컨테이너가 한다.
- 서블릿 클래스에서 생성하는 객체의 관리 자체가 서블릿 컨테이너에 의해서 관리된다.
- 서블릿/JSP 코드 개발은 기본적인 자바 API와 더불어 API도 같이 사용된다.
GET | POST | |
주용도 | 조회 | 등록/수정/삭제와 같은 처리 |
구성 | URL뒤의 '?'와 쿼리 스트링 | URL 전달 후 HTTP몸체로 쿼리 스트링 |
효과 | 사용자가 손쉽게 사용할 수 있는 링크를 제공할 수 있음 | 단순 조회가 아니라 원하는 작업을 처리할 수 있게 됨 |
한계 | - 브라우저에 따라 길 이의 제한 - URL 뒤의 쿼리 스트링으로 모든 정보가 전달되는 단덤 - 쿼리 스트링 길이에 대한 제한 |
- GET 방식에 비해서 많은 양의 데이터를 전송함 - 주소창만으로는 테스트가 어려움 |
'Backend > Spring' 카테고리의 다른 글
[Spring] PRG 패턴 / 와이어프레임 (0) | 2023.12.11 |
---|---|
[Spring] Web MVC 방식 (0) | 2023.12.10 |
[Spring] Socket을 이용해서 채팅 웹페이지 만들기 ! (1) (2) | 2023.09.10 |
[Spring] 내가 보려고 만든 spring 용어 정리 ( 9월 25일 수정 ) (0) | 2023.09.04 |
[Spring] Spring Project - MVC 배우기 ! (0) | 2023.09.03 |