의문점 공부하기 102

📌 스프링 MVC와 struts의 차이에 대하여

스프링 MVC와 Struts는 둘 다 웹 애플리케이션 개발을 위한 프레임워크 아키텍처: 스프링 MVC: 스프링 프레임워크의 일부로, 웹 계층을 구성하는 하나의 모듈입 스프링의 IoC(Inversion of Control)와 AOP(Aspect-Oriented Programming) 개념을 기반으로하며, 컴포넌트 간의 결합도를 낮추는 구조를 제공 Struts: Struts프레임워크는 웹 계층과 비즈니스 계층을 분리하는 구조를 가지며,요청기반 + 웹 계층을 주로 다루는 프레임워크, 요청 핸들러, 응답 핸들러, 태그 라이브러리의 세 가지 주요 구성 요소로 구성 컨트롤러 개념: 스프링 MVC: 컨트롤러는 @Controller 어노테이션으로 표시되며, 메서드 단위로 요청을 처리 메서드에서 반환되는 뷰 이름을 기반..

📌 그렇다면 쿠키를 사용할 수 없을 때 세션을 대신 사용할 수 있을까!?!??!????

우선 결론부터 말하자면 있다...! 쿠키는 클라이언트 측에 데이터를 저장하고 관리하는 메커니즘으로, 사용자의 웹 브라우저에 저장하고 세션은 서버 측에서 데이터를 관리하고 저장하는 메커니즘으로, 클라이언트 측에 직접 저장되는 것은 아니다. 쿠키대신 세션을 사용해야 할 상황에는 쿠키 비활성화: 사용자가 웹 브라우저의 쿠키를 비활성화한 경우, 쿠키를 사용하여 상태 정보를 유지하기 어려워져 서버 측에서 세션을 생성하여 사용자의 상태 정보를 관리해야함 보안 및 개인 정보 보호 강화: 민감한 데이터를 클라이언트 측에 저장하지 않고, 서버 측에 보다 안전하게 관리하려는 경우 세션을 활용 쿠키 용량 한계 초과: 쿠키는 용량 제한이 있기 때문에 대량의 데이터를 저장해야 할 때는 세션을 활용하는 것이 유리 ++세션 사용시..

📌 세션 과정 알아보기

클라이언트의 요청 수신: 사용자가 브라우저를 통해 웹 애플리케이션에 접속하면, 클라이언트의 요청이 서버로 전송 세션 생성 및 세션 ID 생성: 서버는 클라이언트의 요청을 받으면 세션을 생성하고 고유한 세션 ID를 생성. 세션 ID는 클라이언트와 서버 간의 상태를 유지하는 데 사용 세션 ID를 쿠키로 전송: 서버는 생성된 세션 ID를 HTTP 응답 헤더에 포함하여 클라이언트에게 전송 일반적으로 이 세션 ID는 쿠키를 통해 클라이언트에게 저장되고 이 쿠키는 클라이언트 측에서 세션을 식별하는 데 사용된다 클라이언트의 세션 ID 전송: 클라이언트는 이후 요청 시 쿠키에 저장된 세션 ID를 요청 헤더에 포함하여 서버로 전송 세션 식별 및 상태 유지: 서버는 받은 세션 ID를 사용하여 해당 클라이언트의 세션을 식별..

📌 세션과 쿠키의 차이는 ????

세션(Session): 세션은 서버 측에 정보를 저장하는 방식 클라이언트가 웹 서버에 접속한 후 로그인하면 서버는 클라이언트에게 고유한 세션 ID를 부여, 이 세션 ID는 서버 측에서 유지되며, 클라이언트는 이 세션 ID를 사용하여 서버와의 상호작용. 세션은 클라이언트의 브라우저를 종료하거나 세션의 유효기간이 만료될 때까지 유지 세션은 보안 면에서 쿠키보다 안전하며, 서버 측에서 상태를 관리할 수 있다. 쿠키(Cookie): 쿠키는 클라이언트 측에 정보를 저장하는 방식 서버는 클라이언트에게 쿠키를 전송하여 클라이언트의 브라우저에 저장, 클라이언트는 이 쿠키를 웹 서버에 다시 전송하여 상호작용 쿠키는 클라이언트의 하드 디스크에 저장되므로, 클라이언트가 브라우저를 종료해도 유지 쿠키는 클라이언트 측에서 상태..

📌 jsp를 기본 제공하는 객체는 ???

JSP는 웹 개발을 위한 여러 기본 제공 객체를 가진다. 이러한 객체들을 내장 객체(Implicit Objects)라고 부르며, 개발자가 따로 객체를 생성하거나 선언하지 않아도 바로 사용할 수 있는 사전 정의된 java 객체들 request: 클라이언트의 요청 정보를 담고 있는 HttpServletRequest 객체,요청 매개변수, 헤더, 쿠키 등의 정보포함 response: 클라이언트에게 응답을 보내는데 사용되는 HttpServletResponse 객체,헤더 설정, 응답의 내용 pageContext: 현재 페이지에 관련된 컨텍스트 정보를 제공하는 PageContext 객체,다른 JSP 내장 객체들에 대한 참조를 포함 session: 클라이언트의 세션 정보를 관리하는 HttpSession 객체,세션을 생..

🧾 Servlet++

*서블릿 메서드는 절대 주소없이 호출 못함 +http 종류 생성 post 조회 get 변경 put 삭제 delete 정보만 가져올때 head 서블릿 실행 방법 http://서버주소:포트번호/웹애플리케이션이름/서블릿URL 예) http://localhost:8080/java-web/ex 서블릿 구동 과정 1) 웹 브라우저가 서블릿 실행을 요청한다. 2) 서블릿 컨테이너는 해당 URL의 서블릿 객체를 찾는다 3.1) 서블릿 객체를 아직 만들지 않았다면, => 서블릿 클래스에 대해 인스턴스를 생성한다. => 생성자를 호출한다. => init()를 호출한다. => service()를 호출한다. 3.2) 서블릿 객체가 생성되어 있다면, => service()를 호출한다. 만약 웹 애플리케이션이 종료된다면 => 생..

🧾 Servlet에 대해

Servlet 인터페이스: javax.servlet.Servlet 인터페이스는 모든 서블릿 클래스가 구현해야 하는 기본 인터페이스 init, service, destroy, getServletConfig, getServletInfo 등의 메서드를 정의하 ServletConfig 인터페이스: javax.servlet.ServletConfig 인터페이스는 서블릿의 초기화 파라미터를 읽어오기 위해 사용하는 인터페이스 getInitParameter, getInitParameterNames, getServletContext 등의 메서드를 정의하고 있다. ServletRequest 인터페이스: javax.servlet.ServletRequest 인터페이스는 클라이언트 요청 정보를 처리하기 위해 사용하는 인터페이스 ..

📌 JSP와 Servlet의 차이점은 !!!?

JSP(JavaServer Pages)와 Servlet은 모두 Java를 기반으로 하는 웹 애플리케이션 개발을 위한 기술 -역할 및 목적 JSP(Java Server Pages): JSP는 HTML 내에 Java 코드를 포함하여 동적인 웹 페이지를 생성하는 데 사용 주로 클라이언트가 볼 웹 페이지의 모습을 구성하고, 서버 측 로직을 포함하여 동적인 콘텐츠를 생성하는 데 사용 HTML 내부에 Java 코드를 삽입하여 동적 웹 페이지를 생성, JSP는 Servlet으로 변환되어 실행되며, JSP 파일의 내용이 변경되면 다시 변환 과정을 거친다 -directive element -> scriptlet : 표현식 -> expression element : 필드 및 메서드 선언 ->declaration eleme..

🧾 Http 요청 방식 get과 post 비교!

HTTP 요청 방식인 GET과 POST는 웹 애플리케이션에서 클라이언트(브라우저)와 서버 간에 데이터를 전송하는 방식을 나타낸다 GET 방식: 데이터 전송 방식: URL의 쿼리 매개변수에 데이터를 첨부하여 전송, 데이터는 주소 뒤에 '?'와 'key=value' 형식 데이터 노출: URL에 데이터가 노출되므로 보안에 취약, 민감한 정보를 전송하는데 적합하지 않음 요청 제한: URL에 데이터가 포함되어 있어 길이에 제한, 대부분의 브라우저에서는 약 2,048자 캐싱: 브라우저가 이전에 받은 데이터를 캐시하여 다시 요청 시 캐시된 데이터를 사용할 수 있음 웹 페이지 조회, 검색 등 데이터를 서버에 전달하거나 받을 때 사용 POST 방식: 데이터 전송 방식: HTTP 요청의 본문(body)에 데이터를 포함하여..

🧾 HTTP에서의 Stateless로 만들어야하는 이유! + 세션은 보관소? + 쿠키란??

HTTP에서의 Stateless란 상태없는(무상태) 특성을 의미 HTTP는 클라이언트와 서버 간의 각각의 요청(request)과 응답(response) 사이에 연결이 지속되지 않는다는 것 HTTP 프로토콜은 각 요청을 독립적으로 처리하며, 이전 요청과 관련된 정보를 서버가 유지하지 않는다. =>이전 요청과 현재 요청 간에는 아무런 상태 정보가 공유되지 않음..! ex) 사용자가 웹 브라우저를 통해 웹 페이지를 요청하면 서버는 해당 페이지를 제공하고 연결을 끊는다. 이후에 사용자가 다른 페이지를 요청하면 서버는 이전 요청과 관련된 정보를 기억하지 않고 새로운 요청에 대해 독립적으로 응답 이러한 방식으로 HTTP는 상태 정보를 서버 측에서 유지하거나 관리하지 않기 때문에 간단하고 확장성이 높은 프로토콜로 사..