이전 게시글 네트워크 1
https://hoozy.tistory.com/entry/%EB%B0%B1%EC%97%94%EB%93%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1
[백엔드] 네트워크 1
백엔드 로드맵 : https://roadmap.sh/backend 로드맵을 따라 처음인 네트워크부터 배우겠습니다. 카테고리 : 네트워크 인터넷 여러 통신망을 하나로 연결하는 거대한 컴퓨터 통신망 클라이언트와 서버
hoozy.tistory.com
카테고리 : 네트워크
쿠키와 세션
- 쿠키 : HTTP의 일종으로 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일.
- HTTP에서 클라이언트의 상태 정보를 PC(사용자의 PC)에 저장했다가 필요시 정보를 참조하거나 재사용 가능.
- 이름, 값, 저장기간, 경로 정보로 구성.
- 클라이언트에 총 300개의 쿠키를 저장 가능.
- 하나의 도메인 당 20개의 쿠키 가질 수 있음.
- 하나의 쿠키는 4KB까지 저장 가능.
- 동작 순서
- 1. 클라이언트가 페이지를 요청.
- 2. 웹 서버는 쿠키 생성.
- 3. 생성한 쿠키에 정보를 담아 HTTP 화면을 돌려줄 때, 같이 클라이언트에게 돌려준다.
- 4. 넘겨받은 쿠키는 클라이언트가 가지고 있다가(로컬 PC에 저장) 다시 서버에 요청할 때 요청과 함께 쿠키를 전송.
- 5. 동일 사이트 재방문 시 클라이언트의 PC에 해당 쿠키가 있는 경우, 요청 페이지와 함께 쿠키를 전송한다.
- 세션 : 일정 시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지하는 기술.
- 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 본 것.
- 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장한다.
- 웹 서버에 저장되는 쿠키(세션 쿠키).
- 브라우저를 닫거나, 서버에서 세션을 삭제했을 때만 삭제되어서 쿠키보다 보안성이 좋다.
- 저장 데이터에 제한이 없다. (서버 용량이 허용하는 만큼).
- 각 클라이언트에 고유 세션 ID를 부여함. 세션 ID로 클라이언트를 구분해 각 요구에 맞는 서비스 제공.
- 동작 순서
- 1. 클라이언트가 페이지에 요청한다. (웹사이트 접근).
- 2. 서버는 접근한 클라이언트의 쿠키를 확인하여, 클라이언트가 해당 세션 ID를 보냈는지 확인.
- 3. 세션 ID가 존재하지 않으면, 서버는 세션 ID를 생성해 클라이언트에게 돌려줌.
- 4. 서버에서 클라이언트로 돌려준 세션 ID를 쿠키를 사용해 서버에 저장.
- 5. 클라이언트는 재접속 시 이 쿠키를 이용해 세션 ID 값을 서버에 전달.
쿠키 / 세션 차이점
- 비슷한 역할을 하며, 동작 원리도 비슷하다. 이유는 세션도 쿠키를 사용하기 때문.
쿠키 | 세션 | |
---|---|---|
저장 위치 | 클라이언트(접속자 PC) | 웹 서버 (WAS) |
저장 형식 | TEXT | OBJECT |
만료 시점 | 쿠키 저장시 설정 (브라우저 종료해도, 만료시점이 지나지 않으면 삭제되지 않음) | 브라우저 종료시 삭제 (종료 전에 기간 지정 가능) |
사용하는 자원(리소스) | 클라이언트 리소스 | 웹 서버 리소스 |
용량 제한 | 총 300개 하나의 도메인 당 20개 하나의 쿠키 당 4KB | 서버가 허용하는 한 제한 없음 |
속도 | 세션보다 빠름 | 쿠키보다 느림 |
보안 | 세션보다 안좋음 | 쿠키보다 좋음 |
캐시
- 캐시는 웹 페이지 요소를 저장하기 위한 임시 저장소이며, 웹 페이지를 빠르게 렌더링 하도록 돕는다.
- 렌더링 : 웹 사이트 정보를 받아 웹 사이트가 그려지는 과정
- 이미지, 비디오, 오디오, CSS, JS 등 데이터나 값을 미리 복사해 놓는 리소스 파일들의 임시 저장소.
- 저장 공간이 적고 비용이 비싼 대신 빠른 성능을 제공한다.
- 같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하므로 서버를 거치지 않아도 된다.
- 이전에 사용된 데이터가 다시 사용될 가능성이 많으면 캐시 서버에 있는 데이터를 사용한다.
- 그래서 다시 사용될 확률이 있는 데이터들이 빠르게 접근 가능하다. (페이지 로딩 속도 증가)
- 메모리 계층 구조

- 캐시 작동 방식
- 원본 데이터와는 별개로 자주 쓰이는 데이터(Hot Data)들을 복사해둘 캐시 공간을 마련한다. 캐시 공간은 상수 시간 등 낮은 시간 복잡도로 접근가능한 곳. 즉, 접근 시간이 원본 데이터에 접근하는 속도보다 훨씬 빠르게 접근 가능한 곳을 주로 사용한다.
- 데이터를 달라는 요청이 들어오면, 원본 데이터가 담긴 곳에 접근하기 전에 먼저 캐시 내부부터 찾는다.
- 캐시에 원하는 데이터가 없거나, 너무 오래되어 최신성을 잃었으면 그때서야 원본 데이터가 있는 곳에 접근하여 데이터를 가져온다.(캐시 미스) 이때 데이터를 가져오면서 캐시에도 해당 데이터를 복사하거나 혹은 갱신한다.
- 캐시에 원하는 데이터가 있으면 원본 데이터가 있는 공간에 접근하지 않고 캐시에서 바로 해당 데이터를 제공한다. -> 바로 캐시 사용가능한 상태 (캐시 히트)
- 캐시 공간은 작으므로, 공간이 모자라게 되면 안쓰는 데이터부터 삭제하여 공간을 확보한다.
여러 캐시 종류
- CPU의 캐시 메모리
- 아무리 빠른 주 기억장치도 CPU를 따라가기 어려워 SRAM이라는 특수한 메모리를 CPU에 넣어 캐시 메모리로 사용한다.
- 하드디스크
- CPU에 비해 10만 배 이상 느린 장치
- 처리 효율을 올리기 위해 자주 쓰이는 데이터를 캐싱해주는 캐시가 들어감
- 데이터베이스
- 하드디스크나 SSD 위에서 돌아가므로 쿼리를 실행하여 데이터를 읽고 쓴느 것은 시간이 오래 걸리는 작업이다.
- 데이터베이스는 쓰기보다 읽기가 많으므로, 자주 요청받는 쿼리의 결과를 캐싱해두면 효율이 오른다.
- 데이터베이스 자체에서 별도의 캐시를 운영한다. (JPA의 영속성 컨텍스트도 캐시의 일종이다.
- CDN
- 국제 인터넷 회신은 비싸고 용량을 늘리기 어렵다.
- 구글은 각 통신사마다 Google Global Cache를 두어 인기있는 동영상은 미국 서버까지 접속할 필요 없이 국내 서버에서 처리하도록 한다.
- 세계 각지에 캐시 서버를 두어 전송 속도를 높이고 부하를 분산하는 시스템이 CDN 이다.
- 웹 캐시
- 네트워크를 통해 데이터를 가져오는 것은 하드디스크보다 느릴 때가 많다.
- 웹 브라우저는 웹 페이지에 접속할 때 자원을 하드디스크나 메모리에 캐싱해 뒀다가 다음 번에 접속할 때 이를 재활용한다.
- -> 브라우저 캐시
- 웹 서버 또한 동적 웹 페이지라 하더라도 매번 내용이 바뀌지 않는 경우가 더 많으므로, 서버에서 생성한 HTML을 캐싱해 뒀다가 다음 번 요청에 이를 재활용한다
- -> 응답 캐시
- 이와 유사하게, 클라이언트에서 자주 요청받는 내용은 웹 서버로 전달하지 않고 웹 서버 앞단의 프록시 서버에서 캐싱해둔 데이터를 바로 제공하기도 한다.
- -> 프록시 캐시
- 브라우저 캐시
- 웹 서버에서 클라이언트에 보내는 HTTP 헤더에 캐시 지시자를 삽입하면, 웹 브라우저는 해당 지시자에 명시된 캐시 정책에 따라 캐싱을 실시한다.
- 캐시의 유효 시간이 지나도 캐시된 데이터가 바뀌지 않은 경우를 확인하기 위해 ETag라는 유효성 검사 토큰을 사용한다. 캐싱된것을 유효화하고 다시 받아올 필요가 있는지 판단한다.
- 만약 캐싱 기간을 길게 잡았는데 그 사이에 웹 페이지를 수정하면서 이전에 캐싱된 파일로 웹 브라우저 상에선 옛날 버전의 파일들이 계속 나오는 경우가 발생할 수 있다. 이런 경우에는 예를 들어 CSS 버전이 바뀌었을 때 버전 번호를 파일 이름 뒤에 붙인다. HTTP 헤더에 붙이면 파일 이름이 달라지면 무효화가 된다. 파일 이름의 뒤에 버전 번호나 이름을 붙여 캐시 유효기간을 길게 잡으면서도 변경사항이 생겼을 때 업데이트를 신속하게 적용한다.
- 캐시 유효 시간을 최대한 길게 잡으면서도 static 파일의 업데이트를 신속히 적용하기 위해 정적 파일의 이름 뒤에 별도의 토큰이나 버전 번호를 붙인다.
- 캐시 정책은 해당 웹 페이지의 전반적인 상황에 따라 각 파일마다 다르게 적용되어야 한다. 적어도 정적 파일과 동적인 부분의 브라우저 캐싱 정책은 달라야한다. 비공개 정보가 담긴 페이지는 보안상 아예 캐싱을 막아야 할 수도 있다.
캐싱
- 캐시를 사용한다는 뜻으로, 병목 현상을 완화하기 위해 CPU와 메인 메모리(RAM) 사이에 크기는 작지만 속도가 빠른 캐시 메모리를 두고, 향후 재사용할 가능성이 클 것으로 예상되는 데이터의 복사본을 저장해 둔 CPU가 요청하는 데이터를 바로 전달할 수 있도록 한다.
- 레지스터가 캐시 메모리를 캐싱, 캐시 메모리가 램(메인 메모리)을 캐싱, 램이 하드디스크를 캐싱한다.
재사용할 가능성이 큰 것을 아는 방법
- 데이터 지역성의 원리를 이용한다.
- 데이터 지역성의 원리 : 데이터 접근이 시간적 혹은 공간적으로 가깝게 일어나는 것
- CPU가 메모리에 데이터를 요청할 때, 메인 메모리에 접근하기 앞서 캐시 메모리에 접근하여 데이터 존재 여부를 확인한다. 캐시 메모리가 해당 데이터를 가지고 있으면 캐시 히트, 없어서 메인 메모리에서 가져와야 하면 캐시 미스이다.
- 미스가 발생하면 캐싱을 하는데, 히트 상태에서 데이터 쓰기 동작이 발생한다면 두 가지 정책이 있다. CPU에서 데이터를 읽는 동작이 아니라 입력하는 동작이 발생하고 데이터를 변경할 주소가 캐싱된 상태라면 메모리의 데이터가 업데이트되는 대신 캐시의 데이트가 업데이트 된다. 따라서 메인 메모리를 업데이트 해주어야 한다. 메인 메모리를 업데이트하는 시점에 따라 정책이 아래 두 가지로 나뉜다.
- Write Through 정책 : 메인 메모리를 바로 업데이트 해주는 것이다.
- 단순하고 캐시와 메인 메모리의 일관성을 유지할 수 있지만, 매번 업데이트 해줘야 해서 시간이 걸린다는 단점이 있다.
- Write Back 정책 : 캐시만 업데이트하다가 업데이트 된 데이터가 캐시에서 빠지게 될 때 메인 메모리를 업데이트해주는 정책이다.
- 속도가 빠르지만 캐시와 메모리가 서로 값이 다른 경우가 발생할 수 있다. 데이터가 변경되었는지 확인하기 위해 캐시 블록마다 dirty 비트를 추가해야 하며, 데이터가 변경되었다면 1로 변경한다. 이후 해당 블록이 교체될 때 dirty 비트가 1이라면 메모리의 데이터를 변경하는 방식이다. 캐시 일관성을 지키기 위한 기법도 존재한다.
- 단순하고 캐시와 메인 메모리의 일관성을 유지할 수 있지만, 매번 업데이트 해줘야 해서 시간이 걸린다는 단점이 있다.
- Write Through 정책 : 메인 메모리를 바로 업데이트 해주는 것이다.
- 캐싱은 캐시의 데이터나 계산된 결과 값의 복사본을 저장해줘서 전체적인 처리 속도를 향상시킨다.
- 데이터에 직접적으로 접근하는데 걸리는 시간이 오래 걸릴 때
- 필요한 값을 얻기 위해 계산하는 과정을 생략하고 싶을 때
- 반복적으로 동일한 결과를 돌려주는 경우
- 캐싱은 복사본과 원본의 일관성 유지에 유의해야 한다.
TCP / UDP
- TCP : 연결형 서비스로, 3-WAY HANDSHAKING 과정을 통해 연결을 설정하기 때문에 높은 신뢰성 보장하지만, 속도가 비교적 느림.
- 신뢰가 중요한 파일 교환과 같은 경우에 쓰임.
- UDP : 비연결형 서비스로, 3-WAY HANDSHAKING을 사용하지 않아 신뢰성이 떨어지지만, 데이터 수신 여부를 확인 안해서 속도가 빠르다.
- 실시간성이 중요한 스트리밍에 쓰임.
TCP / UDP 차이점
TCP | UDP | |
---|---|---|
연결 방식 | 연결형 서비스 | 비연결형 서비스 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 전송 순서 보장 | 전송 순서 보장하지 않음 |
수신 여부 확인 | 수신 여부를 확인 | 수신 여부 확인 안함 |
통신 방식 | 1:1 통신 | 1:1 OR 1:N OR N:N 통신 |
신뢰성 | 높다 | 낮다 |
속도 | 느리다 | 빠르다 |
3-WAY HANDSHAKE / 4-WAY HANDSHAKE
- 3-WAY HANDSHAKE : TCP 네트워크에서 통신 하는 장치가 서로 연결이 잘 되었는지 확인하는 방법. 송신자와 수신자는 총 3번에 걸쳐 데이터를 주고 받으며 통신이 가능한 상태인지 확인합니다.
- 연결을 설정하는 것.
- 4-WAY HANDSHAKE : TCP 네트워크에서 통신 하는 장치의 연결을 해제하는 방법. 송신자와 수신자는 총 4번에 걸쳐 데이터를 주고 받으며 연결을 끊습니다.
- 연결을 해제하는 것.
OSI 7계층

계층 | 계층 모델 | 설명 |
---|---|---|
7 계층 | 응용 계층 | 사용자에게 통신을 위한 서비스 제공. 인터페이스 역할 |
6 계층 | 표현 계층 | 테이터의 형식을 정의하는 계층. 코드 간의 번역을 담당 |
5 계층 | 세션 계층 | 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층. |
4 계층 | 전송 계층 | 최종 수신 프로세스로 데이터의 전송을 담당하는 계층. (단위: SEGMENT) (TCP, UDP 등) |
3 계층 | 네트워크 계층 | 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층. (단위: PACKET) (ROUTER 등) |
2 계층 | 데이터링크 계층 | 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층. (단위: FRAME) (이더넷 등) |
1 계층 | 물리 계층 | 데이터를 전기 신호로 바꾸어주는 계층 (단위: BIT) (장비: 케이블, 리피터, 허브 등) |
GET / POST 차이점
- GET : 데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식.
- URL에 데이터가 노출되므로 보안적으로 중요한 데이터를 포함하면 안됨.
- POST : 데이터를 추가 또는 수정하기 위해 사용되는 방식으로 데이터를 바디에 추가하여 전송하는 방식.
- 완전히 안전하지는 않지만 URL에 데이터가 노출되지 않아 GET 보다는 안전.
처리 방식 | GET 방식 | POST 방식 |
---|---|---|
URL에 데이터 노출 여부 | O | X |
URL 예시 | www.naver.com?title=제목&cont=내용 | www.naver.com |
데이터의 위치 | 헤더 | 바디 |
캐싱 가능 여부 | O | X |
멱등성 여부 | O | X |
- 멱등성 : 여러번 연산해도 결과가 같은 성질.
STATEFUL / STATELESS
- 세션 상태
- 클라이언트와 서버간 통신 인증이 된 상태.
- 인증된 상태에서 데이터 송수신 가능.
- 세션 정보
- 한 세션 내에서 클라이언트가 서버에 전송할 데이터 정보.
- 서버는 세션 유지 시간이 지나거나(브라우저 종료나 설정한 시간), 클라이언트가 전송하려했던 데이터를 모두 수신할 때까지 클라이언트와의 세션 상태를 유지합니다.
- STATEFUL : 세션이 종료될 때까지, 클라이언트의 세션 정보를 저장하는 프로토콜.
- EX) TCP, 은행(서버)은 고객(클라이언트)의 인증 정보(세션 상태)와 결제 내역(세션 정보)을 가지고 있습니다.
- 서버는 클라이언트의 세션 정보를 저장하므로, 갑자기 통신이 중단되더라도 중단된 곳부터 다시 시작할 수 있습니다.
- 서버에 저장하기 때문에 사용자가 많아지면 과부하로 인해 확장성이 좋지 않다.
- STATELESS : 서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않는 프로토콜.
- 즉, 요청에 대한 응답만 처리하는 방식.
- 각 통신은 선행되거나 후속으로 따라오는 통신과 관련이 없습니다.
- 클라이언트가 송신하려 했던 모든 데이터가 서버 쪽에 수신 되었는지 확인하지 않습니다.
- EX) UDP, 검색창에 질문을 입력하다가 요청이 중단되어도, 다시 검색하면 됩니다.
- 확장성이 좋습니다.
- 서버가 세션 상태 및 세션 정보를 저장하지 않기 때문에, 클라이언트 측에서 송신할 데이터의 양이 많아집니다.
세션 기반 인증 / 토큰 기반 인증
- 세션 기반 인증 : 클라이언트로부터 요청을 받으면 클라이언트의 상태 정보를 저장하므로 STATEFUL한 구조를 가진다.
- 단일 도메인이 사용하기 좋다.
- 토큰 기반 인증 : 상태 정보를 서버에 저장하지 않아서 STATELESS한 구조를 가진다.
대칭키 / 비대칭키 암호화 -> 회원 정보 암호화 해보기
- 둘 다 양방향 암호화 방식이다.
- 대칭키 : 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘.
- 중간에 누군가 암호 키를 가로채면 암호화된 정보가 유출될 수 있다.
- 비대칭키 : 암호화와 복호화에 쓰는 키를 서로 다르게 사용하는 알고리즘.
- 타인에게 절대 노출되어서 안되는 개인키와 공캐적으로 개방되어 있는 공개키를 쌍으로 이룬 형태.
Connection Timeout / Read Timeout
- Connection Timeout : 서버 자체에 클라이언트가 어떤 사유로 접근을 실패했을 시 적용.
- 접근을 시도하는 시간 제한.
- Read Timeout : 클라이언트가 서버 접속에 성공 했으나 서버가 로직을 수행하는 시간이 너무 길어 제대로 응답을 못할 때 연결을 해제하는 것
- 클라이언트는 해당 상황을 오류로 인지하고, 서버는 계속 로직을 수행하고 있어 성공으로 인지해 서로 싱크가 맞지 않아 문제가 발생할 확률이 높다.
공인 IP / 사설 IP
- 공인 IP : ISP가 제공하는 IP 주소이며, 외부에 공개되어 있는 IP 주소.
- 사설 IP : 일반 가정이나 회사 내 등에 할당된 IP 주소이며, IPv4의 주소 부족으로 인해 서브넷팅된 IP이기 때문에 라우터(공유기)에 의해 로컬 네트워크 상의 PC나 장치에 할당된다.
- 사설 IP 주소만으로는 인터넷에 직접 연결 불가하며, 라우터를 통해 1개의 공인 IP 주소를 할당하고, 라우터에 연결된 개인 PC는 사설 IP를 각각 할당 받아 인터넷에 접속 가능하다.
웹 호스팅
- 웹 사이트 또는 웹 애플리케이션을 저장하고 데스크톱, 모바일 및 태블릿과 같은 다양한 디바이스에서 손쉽게 액세스하도록 하는 서비스.
- 웹 호스팅 공급자는 파일을 저장하기 위해 임대할 수 있는 물리적 서버를 유지 관리, 구성 및 실행한다.
- 웹 사이트 및 웹 애플리케이션 호스팅 서비스는 보안, 웹 사이트 백업, 웹 사이트 성능 등의 추가 지원을 제공하여 고객이 웹 사이트의 핵심 기능에 집중할 수 있도록 한다.
- 웹 호스팅 회사는 다양한 호스팅 패키지와 플랜을 제공한다.
웹 호스팅의 종류
- 웹 호스팅 : 서버 1대를 여러 웹사이트(여러 사용자)가 공용으로 씀
- 하나의 서버를 나누어서 사용해서 비용이 비교적 저렴하다.
- 사용자가 많아지면 그에 따라 서버에 과부하가 와서 속도가 느려지거나, 서버가 다운될 수 있다.
- 호스팅 운영자가 관리하므로 서버 지식 없어도 됨.
- 주로 간단한 홈페이지, 블로그, 커뮤니티 사이트, 회사 홈페이지 등 규모가 작은 곳을 운영할 때 사용.
- 개인에게 추천.
- 호스팅 업체에서 결제 후 설정을 안하고 사용할 수 있고, 홈페이지에 자료나 저장용량이 많이 필요하다면 느리더라도 웹 호스팅이 좋다.
- 서버 호스팅 : 서버 1대를 혼자서 쓰는 호스팅
- 서버 공간 전체를 사용할 수 있고 운영과 관리에 관한 직접적인 권한을 가짐.
- 웹 호스팅에 비해 데이터 전송 속도가 빠르다.
- 서버 용량만큼 저장할 수 있는 데이터 공간도 커진다.
- 운영과 관리에 필요한 설비를 갖춰야 하고, 전기를 365일 24시간 내내 공급해야 해서 비용 많이 든다.
- 보안이 좋지 않을 경우 해킹을 당할 수 있다.
- 회사에서 사용하는 것을 추천.
- 설치와 운영에 비용과 시간이 많이듬.
- 클라우드 호스팅 : 서버 호스팅을 가상화한 것으로, 가상화된 서버를 단독으로 사용할 수 있는 형태의 호스팅.
- 웹 호스팅과 다르게 서버에 대한 직접적인 권한을 갖고 사용자의 필요에 따라 메모리 용량, DB 등 자유롭게 서버를 확장하거나 축소를 할 수 있다는 장점이 있다.
- 하나의 서버에 문제가 생기면 연결되어 있는 다른 서버에도 문제가 생길 수 있다.
- 대표적인 것으로 AWS, AZURE 등이 있고, 가격을 비교해서 쓰면 좋다.
- 개인에게 추천.
- 초기 설정이 조금 필요하고, 요금제에 따라 저장용량, CPU 등 사양이 정해져 있다.
- 사용 범위를 초과할 경우 추가 요금이 청구 된다.
- 서버에 대한 사용 권한과 속도가 웹 호스팅에 비해 빠르다.
웹 서버 / WAS
- 웹 서버 : HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 요청을 받아 정적 컨텐츠를 제공하는 서버
- 정적 컨텐츠 : HTML, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠.
- EX) APACHE
- WAS (웹 어플리케이션 서버) : 웹 서버와 다르게 동적 컨텐츠를 제공하는 서버
- 동적 컨텐츠 : DB 조회, 다양한 로직 처리를 요구하는 컨텐츠.
- JSP, SERVLET 구동환경을 제공하기 때문에 웹 컨테이너라고도 불린다.
- 웹 서버의 기능도 할 수 있다.
- EX) TOMCAT
- 웹 서버와 WAS를 분리하는 이유
- 서버 부하 방지
- WAS가 웹 서버 역할까지하면 서버 부하가 커져 속도가 느려진다.
- 보안 강화
- SSL에 대한 암호화, 복호화 처리에 웹 서버를 사용 가능.
- 여러 대의 WAS 연결 가능
- 여러 개의 서버를 사용하는 대용량 웹 어플리케이션의 경우 웹 서버와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응 가능.
- 여러 웹 어플리케이셔 서비스 가능
- 하나의 서버에서 PHP, JAVA 어플리케이션을 함께 사용할 수 있다.

네트워크 2 끝.
다음 게시글 JAVA 기초
https://hoozy.tistory.com/entry/JAVA-%EA%B8%B0%EC%B4%88
[JAVA] 기초
이전 게시글 네트워크 2 https://hoozy.tistory.com/entry/%EB%B0%B1%EC%97%94%EB%93%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-2 수많은 언어가 있지만, 저는 자바를 하기 때문에 자바에 대해서 공부한 후 나중에 나머지 언어
hoozy.tistory.com
참고 자료
https://dev-coco.tistory.com/161
https://wooono.tistory.com/366
https://readinggeneral.tistory.com/39
https://allofsite.com/%EC%9B%B9-%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-3%EA%B0%80%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/
'CS > 네트워크' 카테고리의 다른 글
[백엔드] 네트워크 1 (0) | 2023.03.05 |
---|
댓글