본문 바로가기

Http6

WebClient 프록시(CONNECT HTTP Method) 이전 글에서 간단히 설명한 WebClient 프록시 방식에 대해서 자세히 살펴보려한다. 먼저 우리는 보안 요구사항으로, 네이버망에 있는 서버와 API 통신을 할 때 프록시 서버를 거치도록 수정했다. 코드 작업은 간단하다. reactor.netty HttpClient 에서 제공하는 proxy 메서드를 사용해 프록시 host 와 port 만 적어주면 프록시를 거쳐서 baseUrl 에 등록된 서버로 호출된다. HttpClient httpClient = HttpClient.create() .proxy(it -> it.type(Proxy.HTTP) .host(프록시 서버 주소) .port(443) ); WebClient webClient = WebClient.builder() .clientConnector(new.. 2022. 11. 27.
HTTP keep-alive on/off 에 따라 다른 결과가 나오는 이슈 문제 발생 HTTP request 받는 서버를 변경하면서 에러가 발생했다. 정상적인 경우라면 response body 에 key 값만 있어야 하는데, key 값(123456) 뒤에 에러메세지가 append 되고 있었다. 에러메세지는 HTTP response 에 해당하는 모든 정보였다. 123456HTTP%2F1.1+408+Request+Time-out%0D%0AContent-length%3A+110%0D%0A Cache-Control%3A+no-cache%0D%0AConnection%3A+close%0D%0AContent-Type%3A+text%2F html%0D%0A%0D%0A%3Chtml%3E%3Cbody%3E%3Ch1%3E408+Request+Time-out%3C%2Fh1%3E%0D%0A Your+.. 2022. 5. 29.
GET / POST 를 목적에 맞춰 사용하지 못한 케이스 1. 메뉴 클릭이고 화면 조회니까 get 이어야 하는데, jquery datatable 을 통해 만들어진, query string 이 너무 많아져서 limit 을 초과하는 에러가 발생했고 부득이 post 로 전송. 2. 앵귤러에서 # 를 스펙에 맞지 않게 사용함. 앵귤러는 url anchor 로써 동작이 아니라 앞부분에 붙여서 의도적으로 뒤에 path를 짜르도록 함. 그래서 url 에서 # 이후를 짤라버려서 request param 정보를 보낼 수 가 없어서 부득이 post 로 전송 (https://codecraft.tv/courses/angular/routing/routing-strategies/#_hashlocationstrategy) 3. 기존 시스템을 재개발하는 상황에서, 하위호환성을 맞춰야 하는.. 2021. 6. 18.
Cookie SameSite Lax 모드 업데이트 정리 SameSite Lax 는 top-level navigations, 그리고 safe HTTP method 일 경우에만 제한적으로 cross-site 상황에서 쿠키 생성 및 전달을 허용 한다. 혹시 이 얘기가 어렵다면 SameSite 기본편을 보고 오면 좋을거 같다. RFC6265 정책 결정자들은 실제로 브라우저에 SameSite 정책을 적용해보니 Lax 모드를 전체적으로 적용하기 어렵다는것을 깨닫고 기존 Lax 스펙을 일부 수정했다. Lax-Allowing-Unsafe 가 새롭게 생겼는데 HTTP 요청 메서드와 상관없이 top-level request 일때 일때 cross-site 상황에서 쿠키 생성 및 전달이 가능해진다. 예를 들어 로그인 로직 플로우에서 cross-site top-level POST .. 2021. 4. 8.
Cookie SameSite 기본편 쿠키는 stateless(상태 정보를 유지하지 않는) HTTP protocol 에서 stateful 하게 사용할 수 있게 해주는 수단이다. 먼저 쿠키의 기본 성질에 대해서 알아보자. 1. 서버에서 응답 헤더로 아래와 같은 Set-Cookie 헤더를 보내주면 이후 요청마다 브라우저가 헤더에 쿠키 정보를 같이 전송해준다. 2. admin.ybs.com 도메인으로 쿠키를 만들었을 때, 브라우저는 하위 도메인 요청에도 쿠키를 같이 전달한다. SameSite SameSite 탄생 배경 Set-Cookie: ybs=1234; Path=/; Domain= admin.ybs.com; SameSite=Strict 위와 같이 쿠키에 SameSite 속성이 새롭게 추가 되었다. 사실 새롭다고 하기는 뭐한게 2016년에 dr.. 2021. 2. 5.
https + id/pw rsa 암호화 로그인 페이지를 재개발 하면서 전체적인 흐름을 정확히 알 필요가 생겼다. https 를 이용해 요청/응답 데이터가 암호화되는데, id/pw 입력 데이터를 한번 더 암호화 하면서 복잡도가 증가했기 때문이다. https 통신 먼저 기본적인 https 메커니즘부터 살펴보자. 처음에 YBS 서버가 CSR 파일을 만들어서 CA 인증기관 에 요청해야 한다. 인증서 등록 작업(구매)이다. CSR 파일을 생성할 때 YBS 비밀키, YBS 공개키를 만들게 되고 YBS 서버 인증서를 위한 정보를 입력해 파일을 만든다. $ openssl genrsa -rand rand.dat -des3 2048 > ybs.key.pem $ openssl req -new -key ybs.key.pem > ybs.csr.pem // 이후 cs.. 2021. 1. 31.