티스토리 뷰

네트워크/HTTP

6. 멍청한 Proxy

Teus 2022. 5. 22. 15:27
728x90
반응형

2022 우아한스터디 "HTTP 완벽가이드"를 진행하면서

'HTTP 완벽 가이드' 책을 읽고, 글쓴이의 생각을 정리하는 글 입니다.

https://book.naver.com/bookdb/book_detail.nhn?bid=8509980 

 

HTTP 완벽 가이드

성공적인 웹 트랜잭션 뒤의 숨은 핵심, HTTP의 모든 것『HTTP 완벽 가이드』는 HTTP 규약이 어떻게 작동하고 웹 기반 애플리케이션을 개발하는 데 어떻게 사용하는지 설명하고, HTTP가 효율적으로 동

book.naver.com

 

 

지속Connection을 처리하는 과정에서 Proxy가 중간에 끼면 "멍청한 Proxy"문제가 발생한다고 지난 포스팅에서 언급 했습니다.

 

1. 멍청한 Proxy??

일반적인 Connection의 핸드쉐이크 과정에서 connection : Keep-Alive라고 요청이 갔다고 가정해 봅니다.

 

그렇게되면, Server는 해당 Header를 이해한 다음 Client와 Connection을 유지하게 됩니다.

 

하지만 중간에 이 Connection : Keep-Alive를 이해하지 못하는 Proxy가 있다고 가정해 봅니다.

 

그러면, 이 Keep Alive는 Client<-> Server사이가 아니라 Proxy<-> Server사이에 생기게 됩니다.

 

문제는, 해당 Rroxy는 Keep Alive를 모르기 때문에 당연히 Server의 Response이후에 Connection 끝나는 신호를 기다리게 됩니다.

 

문제는, Server는 그것을 보낼 이유가 없죠?

 

그렇기 때문에 Client에서 보내는 실제 Requests를 처리하지 못하고 hang이 걸리게 됩니다.

 

2. Proxy-Connection

그래서, 위 문제를 해결할려면 어떻게 해야하는가?

 

간단하게는 Proxy가 똑똑해서 Connection : Keep-Alive가 무엇인지 이해하고 알아서 처리하면 됩니다.

 

하지만 세상에는 똑똑하지 못한 Proxy가 매우 많기 때문에, 이런 상황을 대비하기 위해서 'Proxy-Connection'라는 헤더를 사용합니다.

 

이 헤더는 멍청한 Proxy를 통과하면 그대로 Proxy-Connection이 되고, 똑똑한 Proxy를 통과하면 Connection으로 변경되게 됩니다.

 

2_1. Proxy-Connection이면 Connection 헤더가 없이

2_2. Connection이면 Connection 헤더를 포함해서

 

Response를 보내주게 됩니다. 덕분에 멍청한 Proxy에서 발생하면 hang을 사라지고, keep-alive는 없던일이 됩니다.

 

3. 해결?

은 아니죠. 안타깝게도 Client -> 영리한 Proxy -> 멍청한 Proxy -> Server의 경우를 생각해 봅니다.

 

그러면 Proxy-Connection -> Connection -> Connection(멍청한 Proxy) -> Server -> Hang

 

의 문제가 발생하게 됩니다.

 

그래서, 책에서는 똑똑한 Proxy가 완벽한 해결 방안이 되지는 못하고, 위와같은 문제가 발생 할 수 있음을 언급해 주고 있습니다.

(책이 나온 시점이 시점인지라, 현재는 어떤지 모르겠네요 ^-^)

728x90
반응형

'네트워크 > HTTP' 카테고리의 다른 글

8. Proxy(1편)  (0) 2022.05.27
7. Web Server  (0) 2022.05.26
5. 커넥션 관리(2편)  (0) 2022.05.22
4. 커넥션 관리(1편)  (0) 2022.05.15
3. HTTP 메세지  (0) 2022.05.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함