HTTP 프로토콜
을 기반으로 하여 클라이언트의 요청을 서비스하는 기능을 담당자바 프로그램
URL 뒤
에 name=value 형태로 전송취약
기본 전송 방식
으로 사용이 쉬움doGet()
숨겨진 채
전송유리
하지만 확인은 가능doPost()
💡 알아두기
💡 한글 필터 : 따로 패키지에 만들어두고 매번 복붙해서 쓰기
package com.codingbox.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebServlet;
@WebFilter("/*") // 웹 전체에 필터 implements : 인터페이스 상속
public class CharacterEncodingFilter implements Filter{
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
arg0.setCharacterEncoding("UTF-8");
arg1.setCharacterEncoding("UTF-8");
arg1.setContentType("text/html; charset=UTF-8");
arg2.doFilter(arg0, arg1);
}
}
ex. 404 error 코드, 500 error 코드, 200 성공 코드
사용자에게 넘어온 정보(로그인)를 유지하고 사용자가 어떤 페이지를 방문했는 지 추적하기 위해 다음과 같은 객체를 사용한다.
application, session , cookie
ex. 은행 페이지 -> 로그인 만료시간 30분 -> 30분 뒤 세션(session)이 만료되었습니다. (= 로그인 시간이 만료되었습니다.)
session.setAttribute("설정이름", 값);
// 60분동안 저장
session.setMaxInactiveInterval(60*60);
// 무한대로 설정
session.setMaxInactiveInterval(-1);
session.getAttribute("설정이름");
session.removeAttribute("설정이름");
// 세션 전체 제거
session.invalidate();
ex. 쿠키라는 공간에 접근하려면 매번 허락받아야 함 (사이트 들어갈 때 모든 쿠키 허용)
// 고객 pc의 특정 공간에 접근 -> 그러므로 매번 허락받음
장점
단점
사용자 -> 요청 -> 서버
사용자 <- 응답(+쿠키) <- 서버 : 서버가 쿠키를 담아 응답
사용자 -> 요청(+쿠키) -> 서버 : 쿠키를 담아서 다시 서버로
사용자 <- 응답 <- 서버
-> 클라이언트(=접속자 pc)에 저장
-> 저장형식 : txt
-> 만료시점 : 쿠키 저장 시 설정
-> 사용자원 : 클라이언트 리소스
-> 용량제한 : 총 300개
-> 속도 : 세션보다는 빠름
-> 보안 : 세션보다는 안좋음
-> 웹 서버에 저장
-> 저장형식 : object
-> 만료시점 : 브라우저 종료시 삭제
-> 사용자원 : 웹서버 리소스
-> 용량 제한 : 서버가 허용하는 용량제한
-> 속도 : 쿠키보다는 느림
-> 보안 : 쿠키보다 좋음