[Spring] Web 기본 동작 방식

2023. 12. 10. 17:35·Backend/Spring
728x90

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 방식에 비해서 많은 양의 데이터를 전송함
 - 주소창만으로는 테스트가 어려움

 

 

728x90
저작자표시 (새창열림)

'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
'Backend/Spring' 카테고리의 다른 글
  • [Spring] PRG 패턴 / 와이어프레임
  • [Spring] Web MVC 방식
  • [Spring] Socket을 이용해서 채팅 웹페이지 만들기 ! (1)
  • [Spring] 내가 보려고 만든 spring 용어 정리 ( 9월 25일 수정 )
hyeminyy
hyeminyy
Full Stack Developer | consistency
  • hyeminyy
    maemingu
    hyeminyy
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • Backend (46)
        • Java (15)
        • JSP & Servlet (5)
        • EL & JSTL (3)
        • Spring (15)
        • DataBase (4)
        • 알고리즘 (4)
      • Frontend (11)
        • Next.js (5)
        • JavaScript (3)
        • Vue.js (3)
      • IT_STUDY (21)
        • 정보처리기사 (9)
        • SQLD (8)
        • 개인공부 (4)
      • Developer! (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
    • Notion-portfolio
  • 공지사항

  • 인기 글

  • 태그

    NextJS
    프론트엔드
    정보처리기사 실기 요약
    httpServletRequest
    정처기 필기 요약
    SQLD
    백앤드
    sqld자격증
    뷰
    Next.js
    정보처리기사
    Spring
    el
    SQL
    MVC
    정처기 요약
    정처기
    jstl
    코딩테스트
    백앤드개발자
    JSP
    Servlet
    정처기 실기 요약
    알고리즘
    개발자
    Java
    springboot
    정보처리기사 실기
    springProject
    정처기 실기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hyeminyy
[Spring] Web 기본 동작 방식
상단으로

티스토리툴바