1> 웹 (Web) : 클라이언트가 서버에 정보를 요청하면 응답하는 콘텐츠
- 정적 웹 : 웹서버에 잇는 웹 문서를 클라이언트에 제공 (HTML, GIF, JPG, PDF, PPR 등)
- 동적 웹 : 요청 시마다 다른 웹 문서를 클라이언트에 제공 (CGI, ASP, PHP, 서블릿, JSP 등)
2> 서블릿 (Servlet) : 클라이언트가 웹 브라우저 통해 요청하면 서버에서 실행한 후 결과 클라이언트 전송
- 뷰를 통해 요청을 받은 것을 처리하는 컨트롤러 구현
3> JSP (Java Server Page) : HTML 페이지 안에서 스크립트 형태 구현, View 뷰 페이지 만들 때 사용
- 뷰 (View) : 간단히 클라이언트로부터 받은 요청 처리된 결과를 보여주는 페이지 (화면)
4> 웹 서비스 : RESTFUL 기반 (URI 방식으로 호출하여 HTTP 요청방식을 접근)
5> 웹 서버 (Web Server)
- 웹에서 서버 기능을 수행하는 프로그램
- HTTP 프로토콜 기반
- 클라이언트(브라우저) 요청을 처리하는 기능
6> 웹 어플리케이션 서버 (WAS)
- 웹서버의 기능을 분리하여 처리하는 기능
- 요청과 화면 표현 서비스만 웹서버에서 처리, 나머지 다른 기능을 WAS에서 처리
7> 컨테이너
- 웹 컴포넌트 저장소, 메모리 로딩, 객체 생섯 및 초기화, JSP – 서블릿 변환 수행 프로그램
- 서블릿 컨테이너 : 클라이언트 요청에 따라 서블릿 수행
- JSP 컨테이너 : JSP 파일 -> 서블릿 소스 변환, 컴파일 프로그램
8> HTTP 프로토콜 통신
1. 의미
- 서버와 클라이언트 간 HTTP 프로토콜 기반 통신으로 동작
- TCP/IP 4계층 어플리케이션 계층 프로토콜
- 전송 계층에서 TCP 통해 웹브라우저와 웹 서버 간 통신
2. 주요 특징
- 무연결 : 연결을 유지하지 않은 상태로 요청, 응답을 통해 데이터 송수신 가능
- 무상태 : 이전 상태 정보가 유지되지 않는 특성
3. HTTP 요청정보
- 서비스 요청 : 웹브라우저에서 링크를 클릭하거나 버튼을 클릭하여 서비스를 요청하면 HTTP 요청정보를 생성하여 웹서버에 전달
- 요청정보 구조 : 헤더(요청방식 + URI + HTTP버전 등) + 바디
Header : METHOD Request-URI HTTP-Version
4. 요청방식
Web 클라이언트가 Web 서버에 요청하는 방식
- GET : 웹 브라우저 주소 URL을 직접 입력, URI 뒤에 ? 기호와 함께 문자열 전달
(정보 노출, 문자열 길이 제한), 빠른 속도
- POST : HTTP 요청정보 몸체(Body)에 정보 전달 (정보 노출X, 데이터 크기 제한 X),
느린 속도 (클라이언트 인코딩, 서버 디코딩으로 인하여)
- PUT : 파일 업로드 케이스, 보통 Update 같이 리소스 수정 시 PUT 사용 (CREATE or INSERT 는 POST 방식)
- DELETE : 데이터 삭제 케이스
5. 요청 URI
Web 클라이언트 – 요청(서비스문서) -> Web 서버
URL = 프로토콜 서버주소 포트번호 서버자원(URI)
- 프로토콜 : 서버와 통신하기 위한 규약 (웹서버 : HTTP://, 오라클DBMS : jdbc:oracle:thin:@)
- 서버 주소 : 네트워크 통한 컴퓨터 IP 주소 또는 도메인
- 포트번호 : 서버로 접속하기 위한 정보 (0~65,535번)
- URI : 포트번호 다음부터 URI
<URI 예시>
https://lovefor-you.tistory.com:80/294
서버주소 |
포트번호 |
URI |
80 |
/123 |
6. 요청정보 헤더 (Header)
Accept |
클라이언트 처리 파일형식 |
text/html, application/html+xml |
Accept-Encoding |
클라이언트 인코딩 방식 |
gzip, deflate, sdch |
Accept-Language |
클라이언트 지원 언어 |
ko-KR, en-US;q=0..1 |
User-Agent |
웹 브라우저 정보 |
Chrome/51.1.123.12, Safari/123.12 |
Cache-Control |
클라이언트가 서버한테 받은 응답 정보 저장 (재사용) |
no-cache, no-store, max-age |
7. HTTP 응답정보
웹서버에서 클라이언트로 응답
응답정보 = 상태줄 + 헤더 + 몸체(Body)
- 상태줄 : HTTP 버전, 상태코드 (Status-code), 상태코드 설명 (Reason-phrase)
- 상태코드 : 클라이언트 요청 처리결과, 3자리 숫자
200 : 정상처리
404 NOT FOUND : 클라이언트 요청한 URI에 해당하는 문서 정보가 서버에 없음)
400 Bad Request : 클라이언트 요청에 문법적인 오류 요청
- 응답정보 헤더
Cache-Control |
응답 결과를 캐시에 저장할지 설정 public : 어떠한 캐시도 캐시 X private : 공유된 캐시는 캐시 X |
public, private, no-cache,… |
Connection |
연결을 위한 정보로 클라이언트, 서버 중 하나가 연결 해제를 원하는 것 |
close |
Connection-Encoding |
메시지 전송 인코딩 지정 |
gzip |
Content-Type |
메시지 데이터 포맷 (클라이언트, 서버 동일하여야함) |
text/html; charset=UTF-8 |
Date |
서버 응답 시간 |
Tue, 1 June 2020 11:11:11 GMT |
Server |
서버 정보 (이름, 버전) |
nginx |
'IT ▶ > Java & Web' 카테고리의 다른 글
CSS, HTML Text 글씨 크기, 색깔, align 정렬 방법 (0) | 2020.04.24 |
---|---|
CSS 파일에서 class, id, div 태그, link 태그 사용 방법 (0) | 2020.04.20 |
HTML 태그, CSS <style> 사용 방법 (0) | 2020.03.30 |
[Web] 웹 어플리케이션, HTML 정리 (a 태그, ul 태그) (2) | 2020.03.25 |
[자바 프로그래밍 기초] 자바 객체지향 클래스(Class), 메소드(Method) 개념 (0) | 2020.03.14 |