2023 09 11
2023-09-11¶
Proxy¶
참고: https://coding-start.tistory.com/342 참고: https://bcp0109.tistory.com/194
- Proxy
- 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램
- 클라 <-> 서버의 중계기로, 통신을 대리로 수행
- 프록시 서버 주우 일부는 프록시 서버에 요청된 내용을 캐시를 활용해 저장
- 캐시안에 있는 정보를 요구하는 요청은 프록시가 반환하게 설계할 수도 있음
- Proxy with HTTP...
- 클라이언트 <--> 프록시 서버 <--> 서버
- 클라의 모든 HTTP 요청 받아 서버로 전달
- 프록시 서버가 클라이언트를 대신하여 서버에 접근하는 역할
- 프록시 서버는 주로 보안을 위해 사용됨
- 모든 웹 트래픽 흐름속에서 중개자 역할
- 요청/응답 필터링
- 회사 내부망에서 외부로 요청 보낼 때 이게 신뢰할만한 요청인지를 확인
- 회사 내부정책에서 인가한 서버만 접속 가능토록
- Proxy Server 종류
- Caching Proxy Server
- 이전 클라 요청/응답 저장했다가 동일한 요청 들어오면 저장된 컨텐츠 전송
- 높은 트래픽 대응 가능
- 비용 절감도 가능
- Web Proxy
- 웹 트래픽에 초점이 맞춰짐
- Web Cache
- 서로 다른 컨텐츠에 대한 변환
- Forward Proxy
- 클라가 인터넷에 직접 접근하지 않고, 포워드 프록시 서버가 요청을 받고 -> 인터넷 연결하고 -> 결과를 클라에게 전달
- Caching 해둬서 자주 사용하는 데이터는 요청 보내지 않고 가져올 수 있어 성능 향상 가능

- Reverse Proxy
- 클라에서 데이터 요청하면, 리버스 프록시가 요청을 받고 -> 내부 서버에서 데이터 받고 -> 그 결과를 클라에게 전달
- 로드 밸런싱, 서버 확장에 유리

- ex)Nginx도 프록시서버라고 볼 수 있음. 캐시/포워드 프록시/리버스 프록시 가능
- Caching Proxy Server
Gateway¶
- Gateway
- 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 일컫는 용어
- 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트
- 다른 네트워크 간의 통로의 역할을 하는 장치
- 게이트웨이 지날때 마다 트래픽 증가하기에 속도 느려질수도
- 공항 게이트웨이 같은 감성
- 네트워크 상 다른 통신망/통신프로토콜 적절히 변환해주는 역할
- Gateway 특징
- 클라 <-> 서버간 통신 중개자 역할을 수행하긴 하지만, 용도가 조금 다름
- HTTP 프로토콜을 다른 프로토콜로 변환하기 위해 사용
- 게이트웨이는 언제나 리소스를 자기가 들고 있는 것 마냥 행동
- HTTP <-> FTP 등의 프로토콜 변환도 지원
VPN¶
참고: https://www.cloudflare.com/ko-kr/learning/access-management/what-is-a-vpn/
- VPN
- 사용자가 사설망에 연결된 것 처럼 인터넷에 액세스 할 수 있도록 하는 인터넷 보안 서비스
- 인터넷 통신 암호화 + 익명성 제공
- 인터넷 검열 우회, 원격 작업을 위해 기업 내부 네트워크에 연결하는 것
- VPN의 작동 방식
- 인터넷 연결시 flow
- 사용자 <--> ISP <--> 인터넷
- 이때...
- 사용자의 IP주소 노출
- 사용자 장치와 웹서버 간 전송되는 데이터 암호화X
- 데이터 염탐, 경로상 공격 등이 가능
- VPN을 사용하면!?
- (VPN 클라이언트 <-> ISP <-> VPN 서버) <-> 인터넷
- () 괄호 안에는 암호화된 연결
- (VPN 클라이언트 <-> ISP <-> VPN 서버) <-> 인터넷
- 인터넷 연결시 flow
- VPN과 성능
- VPN이 모두 동일하게 생성 X
- VPN 서비스에 사용자가 생성한 부하를 처리할 수 있는 서버 용량이 없다면 사용자 인터넷 연결속도 느려짐
- VPN이 액세스 하려는 사용자, 웹 서버 모두 멀리 떨어져도 이동시간으로 인해 속도 느려짐
전용선¶
cURL¶
- cURL?
- CLI에서 REST API 테스트하고 싶으면 curl 명령어를 써보세요
- HTTP, HTTPS, FTP, LDAP, SCP, TELNET, SMTP, POP3 등 다양한 프로토콜을 테스트해볼 수 있음
- 보통 특정 서버에서 빠르게 방화벽 예외 상태 테스트하거나
- REST 서비스 테스트를 위해 사용되는 편
- cURL 설치
- Linux, MacOS는 curl 기본 탑재
- cURL 명령어 옵션
- URL 앞에서는 curl 옵션을 사용하자
- 찾아보면서 하시고...
- short 형식, long 형식 두개가 있음
-k,--insecure: SSL 인증서 없이 https 연결-D,--dump-header: HTTP 헤더 파일에 기록 덤프-d,--data: HTTP POST 요청 데이터 입력-X,-request: 요청시 사용할 메소드의 종류 (GET, POST, PUT, PATCH, DELETE)
- URL 앞에서는 curl 옵션을 사용하자
-
예시
- GET
$ curl -X GET www.example.com
- POST
- GET