🌐 웹
🚧
아무것도 없어요😢
-
HTTP 상태코드 정리📁 상태코드 서버의 요청 처리 결과를 알려주는 세자리 숫자 코드 클라이언트가 서버에 HTTP 요청을 보내면 서버는 요청을 처리하고 응답메세지를 전송한다. 응답메세지의 상태 라인에는 상태 코드가 존재하는데 이를 통해 요청 처리 결과를 확인할 수 있다. 상태코드는 개발자도구의 Network 카테고리에서 확인할 수 있다. 상태코드의 첫번째 숫자는 응답의 종류를 구분하는데에 사용된다. 나머지 두개의 숫자는 세부적인 응답 내용을 구분하는 데에 사용된다. 현재까지 상태코드는 첫자리 숫자에 따라 1XX부터 5XX까지 5가지로 분류되어 있다. 📂 1XX 정보 현재까지 요청을 제대로 받았으며 프로세스를 계속 진행한다. HTTP 1.1버전부터 추가된 정보를 제공하기 위한 코드이다. 100 Continue 현재까지 진행상태..🌐 웹2023.06.22
-
웹 서버와 WAS📁 웹 서버 HTTP 프로토콜을 기반으로 클라이언트의 요청을 받아 정적 컨텐츠를 제공하는 서버, 프로그램 동작 과정 웹 서버는 클라이언트의 HTTP 요청을 받고, 응답 데이터를 만들어 응답한다. 여기서 웹 서버가 보낼 수 있는 응답 데이터는 html, css, js파일, 이미지 파일 등 프로그램에 저장되어 있는 정적 리소스로 한정된다. 정적 요청과 동적 요청 Static Page 바뀌지 않는 정적 페이지 과거의 뉴스 페이지를 생각해보자. 특정 내용이 담긴 웹 페이지를 저장해놓고 요청이 들어오면 저장된 파일을 사용자에게 보여준다. 단순히 링크를 통해 HTML로 이루어진 페이지로 이동하는 순수한 웹사이트 형태에 불과한 것이다. Dynamic Page 인자에 따라 바뀌는 동적 페이지 시간이 지나면서 뉴스에는 ..🌐 웹2023.06.14
-
서블릿 컨테이너와 쓰레드🌟 멀티쓰레드 지원 및 관리 서블릿 컨테이너는 요청이 들어올 때마다 새로운 쓰레드를 생성해 동시 요청을 처리할 수 있도록 한다. 쓰레드는 HTTP 메서드를 통해 요청을 처리한 후 자동으로 죽도록 해 안정적으로 관리한다. 그러나 쓰레드를 생성하는 것은 꽤나 큰 비용을 요구한다. 그럼에도 불구하고 매번 쓰레드를 생성하는 이유는 무엇일까? 💡 동시 요청 처리 결론적으로, 서블릿 컨테이너가 멀티쓰레드를 지원하는 것은 동시다발적으로 들어오는 요청을 처리하기 위함이다. 자바 애플리케이션은 최소 하나 이상의 쓰레드를 가지고 있다. 기본적으로는 프로그램을 실행하면 메인쓰레드가 생성되고 그 위에 메인메서드를 적재한다. 하나의 쓰레드에서는 한번에 하나의 코드라인만 수행할 수 있다. 한번에 여러 코드라인을 수행하기 위해서는..🌐 웹2023.05.21
-
서블릿 컨테이너📁 서블릿 컨테이너 서블릿의 생성, 실행, 파괴 등 서블릿을 관리해주는 컨테이너 서버에 만들어진 서블릿은 스스로 동작하지 못하고, 톰캣과 같은 컨테이너 하에서 실행될 수 있다. 이처럼 서블릿을 관리하는 컨테이너를 서블릿 컨테이너 혹은 웹 컨테이너라고 한다. 서블릿 컨테이너의 역할 👆 웹서버와 통신 지원 클라이언트의 요청을 받고 응답할 수 있도록 웹서버와 소켓으로 통신한다. 서블릿 컨테이너가 없다면 소켓 연결, 메세지 파싱 등의 과정을 직접 구현해야 해 매우 번거롭다. 👆 서블릿 생명주기 관리 서블릿 클래스 로드, 인스턴스화, 초기화, 요청에 따른 적절한 HTTP 메서드 호출을 모두 처리한다. 서블릿의 생명주기가 다 할 경우 가비지컬렉션을 진행한다. 👆 싱글톤 객체 요청이 들어올 때마다 서블릿 객체를 생성..🌐 웹2023.05.21
-
쿠키와 세션🥖 쿠키와 세션 쿠키와 세션을 사용하는 이유는 비연결지향, 상태없음이라는 HTTP 프로토콜의 두가지 특성에 기반하고 있다. 비연결지향 Connectionless HTTP 환경에서 클라이언트가 요청 메세지를 보내면 서버는 적절한 응답을 보내고 연결을 끊어버린다. HTTP1.1 버전에서는 헤더에 keep-alive 옵션을 두고 커넥션을 계속 유지해 요청에 재활용하는 기능이 추가되었다. 그러나 아직까지는 비연결지향적 특성으로 커넥션 관리에 대한 비용을 줄이는 것을 효율적으로 보는 시각이 많다. 상태없음 Stateless 커넥션을 끊는 순간 클라이언트와 서버의 통신은 끝나며, 이 상태정보는 유지되지 않는다. 클라이언트와의 첫 통신에서 데이터를 주고받았다고 해도, 그 다음 통신에서 그 데이터는 유지되지 않는 것이..🌐 웹2023.05.15
-
HTTP 메서드📁 HTTP 하이퍼 텍스트 전송 프로토콜 Hyper Text Transfer Protocol 서버와 클라이언트 사이에서 웹 문서를 주고받기 위해 사용하는 규칙 클라이언트가 요청(request)를 보내면 그에 대해 서버가 응답(response)하는 방식으로 이루어진다. 클라이언트가 보내는 건 요청 메세지이고, 서버가 보내는 것은 응답 메세지라고 한다. 메세지는 기본적으로 헤더(header)와 바디(body)로 구성된다. 헤더 : 본문 앞에 추가되는 데이터 바디 : 본문 데이터 📁 HTTP 메서드 클라이언트에서 서버에 보내는 요청 메세지를 전송하는 방법 HTTP는 리소스를 위주로 정의되어 있으며, 리소스는 각자 고유한 URL을 가지고 있다. 가령, 티스토리에서 카테고리에 있는 글 전체를 조회하는 URL은 m..🌐 웹2023.04.04
-
서블릿📁 서블릿 Servlet 서버 쪽에서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스 기존 정적 웹프로그래밍의 단점을 보완하는 역할을 한다. 특징 객체지향 등 자바의 일반적인 특징을 모두 가진다. 일반 자바 프로그램과 달리 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다. 플랫폼 독립적으로 컨테이너 종류에 무관하게 실행된다. MVC패턴에서 컨트롤러로 이용된다. 📁 서블릿의 Life Cycle 클라이언트가 요청을 하면 WAS는 해당 서블릿이 메모리에 있는지 확인한다. 서블릿이 처음 실행되는 경우, 서블릿 클래스를 메모리에 올리고 init()을 호출해 초기화한다. service()를 호출해 서블릿이 요청을 처리하도록 한다. service()는 특정 HTTP ..🌐 웹2023.04.03