본문 바로가기

HTTP13

WAS 서버의 예외 처리 이해 웹 애플리케이션에 동작 흐름을 대충 보면 아래와 같이 흘러가게 됩니다.WAS(여기까지 전파) → 필터 → 서블릿 → 인터셉터 → 컨트롤러(예외발생)  웹 애플리케이션에서는 사용자 요청별로 쓰레드가 할당되고 이 쓰레드가 서블릿 컨테이너 안에서 실행된다. 만약 예외가 발생했다고 가정하면 웹 애플리케이션에서 예외를 처리했으면 아무런 문제가 없다 그런데 컨트롤러나 필터 인터셉터 내부에서 예외가 발생했는데 예외처리를 하지 않는 경우 WAS서버까지 예외가 전달된다. WAS서버는 예상치 못한 상황을 인식하고 일반적으로 HTTP500상태코드를 응답으로 생성해 예외를 처리한다.  개발자 모드에 네크워크를 확인해보면 에러 코드 500을 반환해 줄 걸 확인할 수 있습니다. 2024. 7. 3.
도메인 구매 및 EC2에 HTTPS 적용하기 도메인 구매HTTPS 연결을 위해서는, 도메인을 소유하고 있어야 한다. 도메인 구매는 AWS에서도 가능하고, '무료 도메인'이라고 검색하면 나오는 방법으로도 가능하다.저는 적당히 원하는 도메인을 구매하면서도, 가격이 AWS보다는 저렴한'가비아'라는 사이트에서 도메인을 구매했습니다!!! https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브www.gabia.com위 사이트 메인 페이지에 아래 사진과 같은 검색 창이 있는데 원하는 도메인 명을 입력한다.  원하는 도메인 명을 입력하면   'anjffhgkwl'로 검색했더니 도메인 별 가격이 나온다. (가격은 1년 기준입니다.)EVENT 가격은 최초 1년만 적용되는 가격임으로 구매를 할 때 기간이.. 2024. 6. 13.
HTTP 기본 인증(Basic Authentication) 기본 개념 웹 서비스에서 사용할 수 있는 인증 방법은 여러 가지가 있다. 대표적으로는 폼 인증(Form Authentication), HTTP 기본 인증(Basic Authentication), OAuth2 등이 있다. 그중에서 HTTP 기본 인증(Basic Authentication)에 대해 포스트를 작성해보려고 한다. HTTP 기본 인증 HTTP 기본 인증은 보안 엔드포인트에 서비스 클라이언트를 인증하기 위해 사용자 명 및 비밀번호를 사용해 사용자가 누군인지 증명하는 작업이다 헤더에 보낼 수 있는 형태로 암호화 인증정보를 그대로 노출시켜 버리면 Hearder정보를 보고 인증정보를 가져갈 수 있다. 그래서 우리는 해당 정보를 암호화 할 필요가 있다. 이 암호화를 도와주는게 base64 (en-US) 이다. cre.. 2024. 3. 23.
[HTTP] 캐시 무효화 & 전략 1. 캐시 무효화(Cache Busting) "캐시 무효화"란 프록시 캐시 서버나 웹 브라우저 캐시 등 캐시 시스템에 저장된 캐시 데이터를 삭제하거나 삭제하는 행위를 말한다. 그렇다면 캐시 무효화 전략이 필요한 것일까요? 그 이유는 다음과 같다. 웹 브라우저가 GET 요청을 받으면 서버가 캐시 헤더를 제공하지 않더라도 최적화 목적을 위해 임의로 캐싱을 할 수 있다. 그리고 리소스의 캐시 수명이 장기간으로 설정되어 오래된 정보가 사용자에게 표시될 수 있는 경우가 있다. 이러한 경우 업데이트된 데이터가 정확하게 반영되도록 캐시를 무효화해야 합니다. 기본적으로 브라우저는 일반적으로 캐시 제어 헤더에 지정된 캐시 유효 기간이 만료될 때까지 서버에서 유효성 검사를 요청하지 않기 때문에 문제가 발생합니다. 즉, 캐.. 2024. 3. 18.
[HTTP] 프록시(Proxy) 캐시 서버 프록시(Proxy) 캐시 서버 중개자 역할을 하는 프록시는 클라이언트와 원(origin)서버 사이에서 통신을 용이하게 함으로써 클라이언트의 요청을 대신 원(origin)서버에서 받아서 클라이언트에게 주는 역할을 한다. 주요 기능은 자주 사용하는 리소스(예: 웹 페이지, 이미지, 비디오 등)의 복사본을 프록시 서버에 저장하여 해당 리소스에 대한 후속 요청이 원(origin) 서버에서 다시 가져오는 대신 프록시 서버에서 직접 제공할 수 있다. 이 프록시 서버를 캐시 서버로서 이용할 수 있다. 예를 들어 한국에 있는 클라이언트가 미국에 있는 서버를 이용해야 되는 상황이라면 지리적으로 너무 먼 미국 서버에서 리소스들을 가져와야 된다면 상대한 시간이 소요 될 것이다. 그래서 이를 해결하기 위해 프록시 캐시 서버를.. 2024. 3. 18.
[HTTP] HTTP 헤더 캐시 이해하기 HTTP 캐시(Cashe)의 등장 이유 사용자가 브라우저를 열람 시 많은 리소스(이미지, css, script 등등)들이 필요하다 이런 리소스들을 항상 서버에서 다운받고 이를 사용자한테 서비스를 제공한다면, 사용자들은 페이지 로딩 시 많은 시간을 보냄으로써 안좋은 서비스 경험을 만들수 있다 또 네트워크 사용량이 증가해서 서비스 제공자한테는 금전적으로 부담이 된다. 이런 걸 해결하기 위해서 무조건 필요한 리소스들을 매 번 서버에서 받아오는게 아니라 어느 저장소에 저장하고 같은 요청이오면 저장소에서 리소스들을 꺼내면 되지 않을까 해서 만들어진게 바로 cashe라는 개념이다 캐시(Cashe)의 개념 캐시는 사용자가 서비스를 이용하는 과정에서 재사용할 수 있는 리소스들을 캐시 저장소에 임시로 저장하는 공간이다 .. 2024. 3. 18.
[HTTP] 쿠키 이해하기- 파라미터 쿠키(Cookie)란? HTTP는 요청과 응답을 교환한 후 서버 연결을 끊는 무상태 프로토콜입니다. 이는 서버가 새 요청을 수신해도 이전 요청을 기억하지 않는다는 것을 의미한다. 이 문제를 해결하기 위한 한 가지 방식은 모든 요청에 ​​사용자 정보를 포함하는 것입니다. 그러나 이 방법은 보안 위험을 초래하고 개발이 복잡해진다. 쿠키는 이 문제에 대한 해결책을 제공한다. 이는 웹 서버에서 사용자 브라우저로 전송되는 작은 데이터 조각으로, 일반적으로 키=값 형식이다. 브라우저는 이러한 쿠키를 저장했다가 동일한 웹사이트를 다시 요청할 때 서버로 다시 전송한다. 쿠키에 흐름 서버에서 set-cookie에 정보(key, values로 구성)를 저장한 뒤 웹 브라우저 내부에 해당 쿠키를 쿠키 저장소에 저장한다. 브.. 2024. 3. 13.
[HTTP] HTTP Header - 개념, 표현 헤더, 협상 HTTP Header란? HTTP메세지에 속해 있으며, HTTP 헤더 value에는 HTTP 전송에 필요한 모든 부가정보가 들어가있다. 임의의 헤더도 추가 가능 하지만 약속한 클라이언트랑 서버만 이해를 할 수 있다. HTTP 헤더의 특징 field-name은 대소문자 구문 없음 띄어쓰기 위치가 중요하다 value는 대소문자를 구문한다 부가정보에는 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등 많은 정보들이 있는데 수 많은 표준 헤더가 있기 때문에 아래 사이트를 보고 참고하는게 좋다 List of HTTP header fields - Wikipedia - 표준 헤더 HTTP 헤더의 역사 HTTP헤더의 역사는 크게 RFC2616, RFC723x로.. 2024. 3. 13.
[HTTP] 상태 코드 - 상태 코드는 왜 필요할까? 및 종류 상태 코드는 왜 필요할까? 저는 왜? 이걸 사용하지라는 생각을 많이 하는데 글을 쓰면서 한 번 내용을 정리하기로 했다. 아래 내용은 상태코드가 왜 필요한가에 대해서 설명을 위해 예시를 들었다 로그인 실패 과정 1. 내가 보낸 아이디, 패스워드는 POST 요청을 통해 서버로 전달되었다. 2. 서버는 방금 나의 요청에 대해 인증에 실패해서 '아이디 또는 패스워드가 잘못 입력되었습니다.'라는 문구를 내가 보고 있는 페이지로 보냈다. 3. 그런데 아래 사진을 보면 크롬에서는 '비밀번호를 업데이트하시겠습니가?' 라는 창을 띄울까? 위에 설명한 로그인 실패 과정에서 드는 의문점은 '아이디 또는 패스워드가 잘못 입력되었습니다.'를 보고 인증에 실패했다는 사실을 알 수 있다 하지만 로그인에 실패했는데도 브라우저는 내가.. 2024. 3. 12.
[HTTP] 웹 브라우저 요청 흐름 웹 브라우저 요청 흐름 1. 도메인 서버에서 도메임 이름을 검색한다. 2. HTTP 메세지 전송 2-1. HTTP 요청 메세지 생성 2-2. 패킷 생성 2-3. HTTP이 안에 있는 패킷이 서버에게 전달 3. 서버가 패킷을 전달 받으면 HTTP 응답 메세지 전송 4. 웹 브라우저 HTML 렌더링 참조: 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 2024. 3. 12.