목차
- HTTP
- Cookie
- JSP 기본객체 영역
- Session
HTTP
인터넷 프로토콜
- 인터넷에서 데이터 통신을 위한 표준화된 규약이나 규칙
- TCP(Transmission Control Protocl)
- UDP(User Datagram Protocol)
+TCP와 UDP의 차이
문자열로 되어 있으니까 패킷 손상이 되면 안돼요
패킷의 손상여부 담당: TCP ( 온전한 데이터 전송 보장 : 신뢰 전송 , 데이터 전송 느림, 손실 가능성 X, 하나라도 다르면 전송 제대로 되지 않음, 인터넷 사용)
UDP는 반면 체크의 과정이 없음 검사 X ( 신뢰 전송 X, 데이터 전송 빠름, 손실 가능성 O, 음성 통화에 사용
HTTP (HyperText Transfer Protocol)
- 웹 서버와 웹 브라우저 간의 통신에 사용
- HTML, IMAGE, VIDEO, JSON 등의 다양한 데이터 전송 가능
- 기본 포트번호:80
- 보안 버전의 HTTPS (HyperText Transfer Protocol Secure)가 있음 (기본 포트번호:443)
- 클라이언트 - 서버 구조
HTTP (HyperText Transfer Protocol) 특징
- 비 연결성 (Connectionless)
- 지속적인 연결 유지로 인한 자원낭비 방지를 위해 연결 해제
- 서버의 자원을 효율적으로 사용할 수 있음.
- 무 상태 (Stateless)
- 서버가 클라이언트의 상태를 저장하지 않음
- 클라이언트의 상태를 알 수 없기 때문에 추가적인 데이터 전송이 필요함.
- 응답 서버를 쉽게 바꿀 수 있음
- 브라우저 쿠키 or 서버 세션 등을 이용하여 상태 유지
HTTP 상태코드
- 1XX: Informational response
- 2XX: Successful response
- 3XX: Redirection messages
- 4XX: Client error responses
- 5XX: Server error responses
Cookie
- 웹 서버가 클라이언트의 웹 브라우저에 저장하는 작은 데이터 조각
- 필요에 따라 요청(request)시 서버로 같이 전송
- Key: Value 형태의 문자열 데이터
- 웹 브라우저(클라이언트) 별로 별도의 쿠키 생성( 브라우저가 다르다면 다른 사용자)
Cookie 사용 목적
- 세션 관리 (사용자 아이디, 장바구니 등)
- 사용자가 설정한 환경 등을 기억하여 페이지 제공
- 사용자의 행동과 패턴을 분석
- 사용자의 관심에 따른 광고를 타겟팅하기 위해
⭐Cookie 동작순서
- Client가 요청 생성
- WAS는 Cookie를 생성하고 HTTP Header에 Cookie를 넣어 응답
- Client(Browser)는 Cookie를 저장, 해당 서버에 요청할 때 요청과 함께 Cookie를 전송
- Cookie는 브라우저가 종료되더라도 계속 저장되기 때문에(만료 기간 전까지) 동일 사이트 재방문하여 요청 시 필요에따라 Cookie가 재전송됨
server에서 쿠키 넘겨줌, 저장은 client
setMaxAge(int expiry) 메서드 ⭐ 쿠키 유효기간 설정
Cookie 특징
- 이름(key), 값(value), 만료일(Expire data), 도메인 경로(path) 등으로 구성된다.
- 클라이언트에 최대 300개의 쿠키를 저장할 수 있다.
- 하나의 도메인당 20개의 쿠키를 저장할 수 있다.
- 쿠키 하나당 4KB (4096 byte) 제한
JSP 기본 객체 영역 (Scope)
⭐구조
Session
- 사용자가 웹 서버에 접속해 있는 상태를 하나의 단위
- 각 세션은 session id를 이용해 구분
- WAS의 메모리에 객체 형태로 저장
- 메모리가 허용하는 용량까지 제한없이 저장 가능
- 쿠키는 클라이언트에 저장되기 때문에 공유 PC의 경우 보안에 취약할 수 있다. 하지만 세션은 서버에 저장되기 때문에 쿠키에 비해 보안이 좋다.
- 사용자(로그인)정보 및 장바구니 등에 사용한다.
Session 동작 순서
- 클라이언트가 페이지를 요청
- 서버는 쿠키에 session id가 있는 지 확인
- session id가 존재하지 않으면 session id를 생성해 쿠키에 쓴 다음 클라이언트로 반환
- 생성된 session id를 이용하여 서버 내 메모리를 생성
- 클라이언트가 다음 요청 시 쿠키에 session id를 포함하여 전달하면 서버 내에 저장된 session id와 비교하여 데이터를 조회
HttpSession 주요 메서드
invalidate, removeattribute
'Server' 카테고리의 다른 글
Stateful과 Stateless (0) | 2024.05.19 |
---|---|
java.lang.IndexOutOfBoundsException (MyBatis) (0) | 2024.05.18 |
intellij Project 인식 오류 해결하기 (0) | 2024.05.15 |
웹프로그래밍_Servlet에 대하여 (2) | 2024.03.14 |
JSP에 대하여(Java Server Pages) (0) | 2024.03.11 |