inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)

Https 적용하고 http redirect 시켜주기

308 status code

해결된 질문

605

한글영문대소문자

작성한 질문수 7

1

안녕하세요.

 

백그라운드를 먼저 소개해드리자면,

강사님께서 설명해주셨듯 http -> https로 리다이렉션을 시킬 때, 301 status code를 내뱉도록 만들었습니다.

 

테스트하다가 알게 됐는데,

GET 메서드의 경우에는 잘 리다이렉션되지만, POST PUT 메서드의 경우 GET 메서드로 바뀐채 리다이렉션되더라고요.

 

rfc 문서에서는 아래와 같이 설명하고 있습니다.
| Note: For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.

 

이에 따라 http -> https로 리다이렉션을 시킬 때 POSTPUT 인 경우 308 status code를 주려고 했으나, aws 공식문서에는 이를 지원하고 있지 않더라고요.

참고 : https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#redirect-actions

보안 그룹에서 http에 대한 요청 자체를 막는것도 하나의 방법이 될거 같긴한데, 강사님께서는 어떻게 해결하실지 궁금해서 질문 남겨봅니다.

aws docker ci/cd aws-ecs

답변 1

1

김시훈 (도도소프트)

오 예리한 질문이십니다!

 

테스트해보신대로 GET이 아닌 다른 method인 경우 redirect 했을 때 GET으로 변형됩니다. 그래서 http로 POST를 날리면 오류가 나게 되죠. 하지만 이건 문제가 되지 않아요. 우선 GET 외의 요청들은 프론트엔드 개발자 혹은 API를 소모하는 client(개발자)가 사용하게 되는데요. API 명세서에 명확하게 URL이 제공되죠. 즉, 실수로 http로 POST/PUT/DELETE 같은 메서드를 날리지 않습니다.

 

GET은 그러면 왜 http를 https로 redirect 할까요. 웹 브라우저에서 개발자가 아닌 일반 유저가 주소를 입력하고 보통 이때 http/https를 같이 입력하지 않죠. 유저가 기억하기 쉬운 도메인만 입력을 하죠. 그래서 이 경우에는 redirect를 해줘야 합니다. 유저가 실수로 http에 접근하는 경우가 많을텐데 이 때마다 오류를 보여주면 매우 불편하니깐요.

 

물론 307혹은 찾아보신 308 redirect도 있긴 하지만 지원 되지 않는 경우가 많습니다. 위에 설명한 이유로 그렇게 필수적이지 않기도 하고요

39강 배포용 workflow 만들기에서 main 브랜치에 merge 가 자꾸 실패합니다.

0

44

1

도메인 생성이 너무 오래 걸려요

0

44

2

loadbalancer로 vm 연결할때 궁금한 점

0

37

1

typescript 개발 환경 세팅해주기(nodemon) 질문

0

45

1

lightsail 가상서버에서 sudo npm start를 실행했을때 오류 질문드립니다.

0

62

1

ec2로 배포

0

57

1

올려주신 자료 다운로드 후 npm run test 오류

0

77

1

강의 학습시 애플리케이션 질문

0

63

1

네임스페이스

0

120

1

springboot

0

117

2

영상 중복

0

140

1

강의 영상 시청문의

1

168

1

WSL에 설치한 Redis에 연결이 안 됩니다.

0

325

1

실습시 비용 관련 질문드립니다.

0

394

2

secret manager 질문있습니다.

0

123

1

자동 유효성 검사 실패

0

155

1

ECS 클러스터에서 레디스와 express 연결할 때 질문이 있습니다!

0

393

2

프론트 백엔드간의 http 요청을 주고 받으려면

0

337

1

aws ecs + fargate 환경에서 aws elasticache 연동 이슈

1

519

1

docker volume

0

215

1

[AWS 배포 완벽가이드] artillery 버전

1

286

1

deploy.yml github action 성공 , 하지만 AWS

0

403

2

ECS ALB설정을 위한 vpc 설정

0

431

2

도커는 OS를 공유하지 않나요?

0

457

1