*본 포스팅은 웹 프로그래밍 학습을 위해 작성되었습니다.
#웹프로그래밍 구조
#웹과 웹 프로그래밍
- 웹 페이지 - 웹 브라우저를 통해 보여지는 화면
- 웹 서버 - 클라이언트 요청에 맞는 응답을 제공
- 웹 어플리케이션 - 웹 서버를 기반으로 실행되는 응용 소프트웨어
- 웹 어플리케이션 서버 - 요청이 오면 알맞은 프로그램을 실행하여 응답 만들고 제공하는 서버
#웹 프로그래밍 용어
- URI(Uniform Resource Identifier)
- 통합 자원 식별자
- 인터넷 상의 자원을 고유하게 식별하는 데 사용
- URL 과 URN을 포함하는 상위 개념
- URL(Uniform Resource Locator) Ex) 테헤란로~ 주소
- 통합 자원 위치
- 자원의 위치를 나타내는 데 사용
- URN(Uniform Resouce Name) Ex) 상호명
- 통합 자원 이름
- 자원에 대한 고유한 이름을 제공
#Servlet 🧐
- Server + Applet 의 합성어
- Java 언어로 작성된 웹 어플리케이션의 서버 프로그램
- Java를 이용하여 웹페이지를 동적으로 생성 가능하다.
- Servlet은 자바 코드 안에 HTML을 포함한다.
#Servlet 등록 방법
- annotation
- web.xml
#Servlet 생명주기(Life - Cycle)
- Servlet 인스턴스는 웹컨테이너에 의해 제어된다.
- Servlet 인스턴스가 존재하지 않으면 다음과 같은 작업을 수행한다.
- Servlet 클래스 로드
- Servlet 클래스 인스턴스 생성
- Servlet 인스턴스 초기화
- 웹 컨테이너에 의한 서비스 메서드 호출
- destroy 메서드를 호출하여 Servlet 종료
- 서비스 메서드는 요청이 들어올 때마다 호출된다.
웹서비스는 Servlet을 싱글톤으로 사용하고 있다.
#GET 과 POST ✏️
GET | POST |
저장된 리소스에서 데이터를 요청하는 데 사용 | 리소스를 생성/ 업데이트하기 위해 서버에 데이터를 보내는 데 사용 |
query string(name/value쌍)이 URL에 포함되어 전송됨. POST와 비교하여 보안에 취약함 |
HTTP header의 body에 파라미터를 포함하여 전송 데이터 길이에 제한 없음 매개변수가 브라우저나 웹 서버에 저장되지 않음 |
URL이 길이 제한이 있으므로, 전송 가능한 데이터의 길이가 제한적 ASCII 문자만 가능 |
제한 없음,바이너리 데이터도 허용 |
#URL 구성 요소 ✏️
https://www.google.com/search?q=ssafy
프로토콜 > 절차를 포함한 통신규약
서버 > 웹 페이지를 요청할 서버의 주소, 실제 IP주소나 도메인을 입력할 수 있다.
경로 > 서버 내의 상세 경로
쿼리 스트링 >추가로 서버로 데이터를 전송하기 위해서 사용한다.
('?' 마크를 적어 시작을 표시한다.
parameter_name=value 형태로 작성하며 파라미터가 여러 개일 경우 '&'로 구분하여 작성한다.)
#Servlet 요청과 응답
기존 방식
- 매핑 주소마다 servlet 존재
- 많은 servlet이 필요
현재 방식
- Servlet 요청과 응답 (Front Controller)
- 웹에서 발생하는 모든 요청에 대해 호출되는 Servlet을 만들어 처리함.
'Server' 카테고리의 다른 글
Stateful과 Stateless (0) | 2024.05.19 |
---|---|
java.lang.IndexOutOfBoundsException (MyBatis) (0) | 2024.05.18 |
intellij Project 인식 오류 해결하기 (0) | 2024.05.15 |
Cookie와 Session에 대하여.Backend (3) | 2024.03.12 |
JSP에 대하여(Java Server Pages) (0) | 2024.03.11 |