# redirect
Servlet의 Scope와 redirect & forward의 차이
redirect와 forward redirect 서버가 클라이언트에게 특정 URL로 이동하라는 요청을 보내는 것을 redirect라고 합니다. 리다이렉트는 HTTP프로토콜로 정해진 규칙 서버는 클라이언트에게 HTTP 상태코드 302로 응답하는데 이때 헤더 내 Location 값에 이동할 URL 을 추가, 클라이언트는 리다이렉션 응답을 받게 되면 헤더(Location)에 포함된 URL로 재요청을 보내는데 이때 브라우저의 주소창은 새 URL로 바뀜 클라이언트는 서버로부터 받은 상태 값이 302이면 Location헤더값으로 재요청을 보내는데 이때 브라우저의 주소창은 전송받은 URL로 바뀜 서블릿이나 JSP는 리다이렉트하기 위해 HttpServletResponse 클래스의 sendRedirect() 메소드를 사용 redirect의 동작 간단하게 a라는 페이지 요청이 들어오면 b라는 페이지로 이동하라는 코드를 작성했을 때의 동작순서입니다.

JSP
jsp란? 👊 jsp(JavaServer Pages)란 무엇인가? jsp는 JavaServer Pages의 약자이며 html코드에 java코드를 넣어 동적 웹페이지를 생성하는 웹어플리케이션 도구이다. jsp가 실행되면 자바 서블릿으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다. jsp는 서블릿 기반의 서버 스크립트 기술이다. html+ java = html를 중심으로 java와 연동하여 사용하는 웹 언어이다. 스크립트 태그 html코드에 자바 코드를 넣어 프로그램이 수행할 기능을 구현할 수 있다. ✍️ 선언문(declaration) : :자바의 변수나 메소드를 정의하는데 사용되는 태그 스크립틀릿(scriptlet) : :자바 변수 선언 및 자바 로직 코드를 작성하는데 사용 표현문(expression) :<%= ... %

모바일 앱과 웹에서 카카오 로그인
모바일 앱 Kakao 서버가 발급한 access_token을 모바일 앱은 Service 서버에 전달하고 이를 다시 Kakao 서버에 확인한다. 출처: https://puleugo.tistory.com/111 웹(OAuth2) Redirect 방식은 Kakao Auth 서버에 먼지 Redirect URI가 등록되어 있고, 웹 클라이언트가 Kakao 서버에 로그인 요청시 웹 클라이언트로의 응답이 아니라, authorization_code와 함께 Service 서버를 호출한다. 출처: https://developers.k
[Servlet&JSP] Redirect vs Forward 차이
개요 > Controller(Servlet)가 클라이언트의 요청을 받아 View(JSP)로 페이지를 전환할 때, redirect와 forward기법이 있다. 이 둘 기법에는 페이지 전환 시, 데이터를 전달하는 방법에 차이가 존재한다. 1. Redirect 기법 | |Redirect 기법| |:---:|:---:| |Controller(Servlet)|response.sendRedirect("JSP파일경로?변수이름=값&변수이름=값");| | | | |View(JSP)|request.getParameter("변수이름");| **1. response.sendRedirect("JSP파일경로?변수이름=값"); ** Controller에서 Redirect로 요청할 View페이지를 지정한다. "?변수이름=값&변수이름=값"의 형태로 데이터를 View페이지로 전달한다.(QueryString, Get방식) **2. request.getParameter(

JSP action tags, forward, redirect, cookie, session (230726)
1. 액션태그에 대하여 설명하시오. forward > page 속성에 해당하는 곳으로 forward한다. include > page 속성에 있는 해당 파일을 페이지에 가져와 html그대로 뿌린다. param > forward를 보낼 때 param를 심어서 보낼 수 있다. 2. forward 와 redirect의 차이는? 3. 쿠키와 세션에 대하여 설명하시오. 쿠키(Cookie) > 쿠키는 정보를 담아 response로 client에게 보내두어 나중에 server에서 가져와 상태를 확인하거나 한다.(4kb 300개 제한) 세션(Session) > 세션은 서버쪽에서 객체로 생성해두어 클라이언트와의 연결상태를 확인해 유지하기 위한 기법으로 사용된다. 기본적으로 WAS(Tomcat기준)는 JSESSIONID라는 16bytes 숫자를 쿠키와 세션에 심는다. 4. response.sendRedi

TIL#35
JSP action tag ``: 이 태그는 현재 실행 중인 JSP 페이지의 제어를 다른 리소스(다른 JSP 페이지, 서블릿 등)로 전달하는 데 사용됩니다. 일반적으로 사용자의 요청을 다른 페이지로 리디렉션하는 데에 쓰이며, 포워드를 통해 요청과 관련된 데이터를 새로운 페이지로 전달할 수도 있습니다. 이렇게 함으로써 웹 애플리케이션의 기능을 모듈화하고 코드를 재사용할 수 있게 됩니다. ``: 이 태그는 현재 JSP 페이지에 다른 리소스(다른 JSP 페이지, HTML 파일 등)의 내용을 포함시키는 데 사용됩니다. 포함되는 리소스의 내용이 현재 페이지의 해당 위치에 표시됩니다. 주로 웹 페이지의 헤더, 푸터, 혹은 다른 일반적으로 반복되는 부분을 모듈화하여 여러 페이지에서 동일한 내용을 사용할 수 있게 합니다. ``: 이 태그는 나 와 함께 사용되어 전달할 매개변

TIL - 무한 redirect | IllegalStateException
문제1 - 계속 로그인 화면으로 돌아감 1) 문제 화면에서 버튼을 누르면 올바른 처리를 할 수 있도록 링크가 동작해야 하는데, 자꾸 로그인 화면으로 튕겼다 .. 이유가 뭔지.. 일단 서버쪽으로 제대로 데이터가 전송되지 않았던 것 같은데, 서버쪽에서 돌아가는 코드 상에는 문제가 없어보였다. 그러면 새로 작성해본 html 파일에서 문제가 있는 건가 ..? 2) 시도 일단 사용하는 HTTP 메소드와 API가 일치하는지 부터 살펴보았다. 문제는 없었다 .. 전혀.. 그럼 어디가 문제인거지 ? 3) 해결 프론트 쪽에서 input submit으로 수행하고 있었는데 이를 바꿔주니 제대로 동작했다. input submit type을 사용하면 안되나보다 ㅠㅡㅠ 4) 배운 점 서버쪽을 공부하다가 갑자기 프론트랑 연결하려니까 정말 하나도 모르겠다.. 너무어렵다........ 문제2 - 오류 1) 문제 아니.. 뭐 좀 추가했다고 진짜 이럴거

AWS Amplify 카카오 로그인 이슈 해결하기
프론트엔드 Next.js코드를 next export를 이용하여 정적페이지로 배포를 하는데, 기존에는 AWS S3를 이용해서 배포하다, .html을 뒤에 입력해주어야 하는 문제가 빈번하게 발생해서 AWS Amplify로 이전했다. AWS Amplify로 이동했을 때는 뒤에 .html을 붙여야 하는 문제가 해결되어 좋았지만, 카카오 로그인 쪽에서 계속해서 문제가 발생하였다. 문제 상황 카카오 로그인은 vercel 배포환경이나 local 환경에서는 자 돌아갔는데, AWS에서만 오류가 나는 상황이였다. 카카오 로그인이 성공하고, 지정해준 redirect url로 이동하면서 param으로 인가 코드 code를 넘겨주는 것이 정상적인 흐름인데 redirect url 까지는 이동이 되는데, 인가 코드가 넘어오지 않는 문제가 있었다. 
DispatcherServlet
🏁 DispatcherServlet HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller) 쇼핑몰의 인포 데스크처럼 입구에서 기다리고 있다가 요청에 따라 길을 안내해주는 역할 🤺 DispatcherServlet 작성 순서 디스패쳐 서블릿을 만들고 HttpServlet을 상속받고 init과 service를 오버라이드 해서 사용한다 * ✔ DispatcherServlet.java (예시) >> * web.xml에서 servlet, servlet-mapping 작성

Apache 서버에 URL Redirect 기능 구현하기
서론 회사에서 /data URL을 요청하면, 특정 URL로 연결되는 리다이렉팅 기능을 급하게 요청받았었다. 현재 하고있는 일이 많아 우리팀 신입 분에게 이 Task를 맡겼었는데 3일 내내 전전긍긍하길래 다른 Task를 부여해주고 내가 빠르게 처리해보기로 했다. (나도 서버에서 구현하는건 처음이지만 2년의 개발 짬 덕분인지 뭔가 해낼 수 있을 것 같았다.😤) 본론 서버 유형 먼저 우리 회사 서버 종류는 apache2 이기에 이를 기준으로 구현 절차를 작성해보도록 하겠다. 구현 절차 1. 서버 접속 먼저 ssh 명령어로 서버에 접속하였다. 2. Redirecting Config file 리다이렉팅 환경설정 스크립트 **파
React에서 Redirect를 어떻게 처리하나요?
React에서 Redirect를 어떻게 처리하나요? React에서 리다이렉트를 처리하기 위해 react-router-dom 패키지의 useNavigate 훅을 사용할 수 있습니다. useNavigate 훅을 사용하면 브라우저의 URL을 다른 경로로 리다이렉트할 수 있습니다. Redirect 예시 Redirect를 위해react-router-dom의 useNavigate 훅을 사용할 수 있습니다. 다음은 예시입니다: 위의 예시에서 useNavigate 훅을 사용하여 navigate 함수를 얻어옵니다. isLoggedIn 값이 true인 경우 navigate('/dashboard')를 호출하여 /dashboard 경로로 리다이렉트합니다. useNavigate 훅은 React Router를 사용하여 리다이렉트를 처리하는 주요 방법입니다.

[Apis] redirect에 cookie를 담아보아요 - 실험
이 전 포스트에 이어 본격적으로 여러 실험을 해보겠습니다. 0-1. 우선 코드부터 살펴보자! 서두가 길었습니다. 빠르게 코드를 살펴보겠습니다. 우선 저희 서버는 NestJS입니다. Nest에는다양한 요청을 세분화하여 처리하는 Controller 속 route handler들이 있습니다. 이 라우트 핸들러에서 redirect와 쿠키를 입히는 작업을 수행할 수 있습니다. 현재 서버 상태 : 현재 BE와 FE의 도메인이 달라 "cross-origin" 상태 Access-Control-Allow-Origin=\* Access-Control-Allow-Credentials=true 쿠키는 se

[Apis] redirect에 cookie를 담아보아요 - 정리
왜 쿠키를 거기다가 넣었니... 서버에서 kakao 로그인을 개발하는 중 redirect에 쿠키를 전달할 필요가 있었습니다. 이 포스트를 통해 redirect로 클라이언트에게 쿠키를 전달해보는 과정을 정리해보겠습니다. 앞 부분은 redirect와 쿠키를 간단하게 정리하고 있으므로 이미 아시는 내용이라면 다음 post를 보시면 됩니다. 0-1. HTTP Redirect..? HTTP Rediect를 알아보기 위해 <a href="https://developer.mozilla.org/ko/docs/Web/HTTP/Redirec

React 프로젝트를 CloudFront 로 배포 시 403/404 에러 발생
문제 상황 (React 등) CSR 방식의 프로젝트를 CloudFront로 배포를 하게되면 403/404 에러가 발생한다. 원인 React는 react-router-dom을 사용해 새로고침 대신 서비스 내에서 redirect를 발생시키는데(CSR), CloudFront는 redirect를 에러로 처리하기 때문이다. 해결 방법 1. [S3] 오류 문서에 index.html 설정 정적 웹 사이트 호스팅 편집 - 오류 문서에 index.html 입력 > 2. [CloudFront] 해당 배포의 오류 페이지 응답 편집 CloudFront - 배포 - 해당 배포 선택 - 오류 페이지 탭 - 사용자 정의 오류 응답 생성 403,

Forward와 Redirect
🏁 Forward 사용자가 보낸 요청을 해당 서블릿에서 처리하다가 요청 정보를 다른 서블릿으로 넘겨 이어 받아 처리하게 하는 것 사용자가 보낸 요청 객체를 그대로 다음 서블릿으로 전달하기 때문에 요청에 실려있던 파라미터들도 그대로 함께 전달된다 이 포워드를 이용하여 자바 코드가 많이 사용된 처리(controller/service)는 서블릿에서 진행하고, html 코드가 많이 사용되는 처리(view)는 JSP에서 이어서 진행할 수 있다 🤺 Forward의 용도 서블릿은 자바 코드를 작성하기에 편리하고 JSP는 html 코드를 작성하기에 편리하다 하나의 요청에 대해서 1차로 서블릿에서 자바로 처리를 모두 마친 후 포워드를 통해 2차로 html코드를 생성하여 응답하는 방식을 많이 사용한다 (이것을 view와 controller의 분리라고 한다 - MVC) 실제 view 페이지의 경로가 노출되는 것이 아니라 forward를 보낸

6. JSP - 포워딩(forward)과 리다이렉트(redirect)
포워딩(forward)은 클라이언트의 request와 response를 한 페이지에서 한 번에 처리해주기위해 사용됩니다. 1) RequestDispatcher forward를 이해하기 위해서는 RequestDispatcher에 대한 이해도가 우선되어야 합니다. RequestDispatcher은 다른 페이지로의 이동을 주관하는 클래스로 <stron
Nuxt에서 redirect 설정하기
Issue 프론트엔드 개발 업무를 수행하다보면 페이지마다 리디렉션 처리를 해야 할 경우가 빈번히 발생한다. 이에 따라 Nuxt.js에서의 리디렉션 처리 방법을 정리해보려고 한다. Problem https://dev.glamai.com/rankings/editors-pick/bathbody/ -> https://dev.glamai.com/rankings/editors-pick/bath-body/ 위 path가 포함된 모든 url이 redirect 되어야함 Solution nuxt.config.js 파일에서 redirect를 설정하여 해당 URL로의 리다이렉트를 구현 위 코드에서 extendRoutes 함수를 사용하여 새로운 경로를 추가하고, redirect 속성을 이용하여 리다이렉트할 경로를 지정한다. :slug은 동적 라우트 매개변수로, 실제 경로에서 해당 부분에 들어가는 값을 의미한다. 이 값을

Django 배우기(4)
📎 생성기능 구현 👉 목표 이번에는 글을 작성하는 부분을 만들어본다. title을 작성하는 부분과 글의 body를 작정하고 제출 버튼을 누르면 topics에 추가가 된다. 그리고 새로 생성된 topic을 클릭하면 그 페이지의 상세보기 페이지로 이동하는 기능을 만드는 것이 목표다. 📎 GET method & POST method myapp > views.py 다음과 같이 수정하고, 페이지로 가서 페이지 속성으로 들어간 뒤 , form의 title과 body에 글을 작성하고 제출을 누르면 어떤 형식으로 전송을 했는지 request method를 확인할 수 있다. request method를 확인하는 것은 왜 중요할까? 서버에서는 주어진 리소스에 수행하길 원하는 행동을 메소드를 통해 구분하여 수행하기 때문이다. 따라서 메소드에 따라서 수행하는 작업이 다르다. request method에는 GET, HEAD, POST, PUT, DEL

사용법 D06
1. 리다이렉트 스프링은 redirect:// 으로 편리하게 리다이렉트를 지원한다. 컨트롤러에 매핑된 @Pathvariable의 값은 redirect에도 사용할 수 있다. @Pathvariable Long itemId의 값을 그대로 사용한다. 2. RediredctAttributes RediredctAttributes를 사용하면 pathVariable 쿼리 파라미터까지도 처리를 해준다. pathVariable 바인딩 : {itemId} 나머지는 쿼리 파라미터로 처리 : ?status=true; 3. l