전체 글 245

📌 세션 과정 알아보기

클라이언트의 요청 수신: 사용자가 브라우저를 통해 웹 애플리케이션에 접속하면, 클라이언트의 요청이 서버로 전송 세션 생성 및 세션 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는 상태 정보를 서버 측에서 유지하거나 관리하지 않기 때문에 간단하고 확장성이 높은 프로토콜로 사..

🧾 자바 직렬화는 왜 쓸까

자바 직렬화: 자바 객체를 바이트 스트림으로 변환하는 과정 바이트 스트림은 파일에 저장하거나 네트워크를 통해 전송할 수 있다. 네트워크 통신: 객체를 네트워크를 통해 전송해야 할 때 직렬화를 사용할 수 있다. 객체를 직렬화하여 바이트 스트림으로 변환하고, 이를 네트워크를 통해 전송할 수 있다. 수신 측에서는 바이트 스트림을 역직렬화하여 원래의 객체로 복원할 수 있다. 분산 시스템: 분산 시스템에서는 여러 컴퓨터 간에 객체를 전송해야 할 때 직렬화를 사용할 수 있다. 객체를 직렬화하여 전송하고, 수신 측에서는 역직렬화하여 객체를 사용할 수 있다 데이터베이스 저장: 객체를 데이터베이스에 저장해야 할 때도 직렬화를 사용할 수 있다. 객체를 직렬화하여 바이트 스트림으로 변환하고, 이를 데이터베이스에 저장할 수 ..

🧾 동적 프록시란 ???

먼저 프록시란? - 클라이언트와 서버 사이에서 중계 역할을 하는 컴퓨터나 응용 프로그램 - 프록시 서버는 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접근할 수 있도록 해주며, 이를 통해 데이터 전송 시간을 절약하고 네트워크 병목 현상을 방지하는 등의 이점을 제공 동적 프록시 - 프로그래밍에서 특정 클래스의 인터페이스를 구현하는 클래스를 런타임에 동적으로 생성하는 기술 - 프록시 패턴의 한 형태로, 대상 객체에 대한 액세스를 제어하거나 추가적인 행동을 추가하는 등의 목적으로 사용 - 동적 프록시를 사용하면 개발자는 매번 프록시 클래스를 직접 작성하지 않아도 된다 - 프록시 객체는 런타임에 동적으로 생성되며, 이렇게 생성된 프록시 객체는 원래 객체를 대신하여 원래 객체에 대한 연산을 수행할 ..