HTTP

  • HTTP는 암호화하지 않은 통신이기 때문에 도청이 가능하다.

  • HTTP는 통신 상대를 확인하지 않기 때문에 위장이 가능하다.

  • HTTP는 완전성을 증명할 수 없기 때문에 변조가 가능하다.

  • 암호화하지 않은 통신을 SSL(Secure Socket Layer) 또는 TSL(Transport Layer Security)라는 다른 프로토콜을 조합함으로써 HTTP 통신 내용을 암호화할 수 있다.

  • SSL을 조합한 HTTP를 HTTPS(HTTP Secure)라고 부른다.

 

HTTPS

  • HTTPS는 SSL의 껍질을 쓴 HTTP 라고 할 수 있다.

  • HTTPS는 원래 TCP와 직접 통신했지만, HTTPS에서 HTTP는 SSL과 통신하고 SSL이 TCP와 통신하므로 암호화와 증명서, 안전성 보호를 이용할 수 있게 된다.

IP (Internet Protocol)

  • IP는 인터넷 계층에 해당한다.
  • 인터넷 프로토콜의 역할은 지정한 IP 주소에 패킷을 전달하는 것이다.
  • 인터넷 프로토콜의 한계
         - 비연결성 : 대상이 없거나 서비스 불능 상태여도 패킷 전송
         - 비신뢰성 : 패킷 소실, 패킷 전달 순서 문제 발생
         - 프로그램 구분 : 같은 IP 내에서 프로세스 구분

 

TCP (Transfer Control Protocol)

  • TCP는 전송 계층에 해당한다.
  • 연결 지향 - TCP 3 way handshake

  • 데이터 전달 보증
  • 순서 보장
  • PORT로 같은 IP 주소 내에서 프로세스를 구분한다.
  • TCP는 정확하게 보냈는지 확인하는 역할

 

DNS (Domain Name System)

  • 도메인명을 IP 주소로 변환

 

정리

'Computer Science > Network' 카테고리의 다른 글

[Network] HTTP 와 HTTPS  (0) 2021.01.12
[Network] 쿠키(cookie), 세션(session), 캐시(cache)  (0) 2020.12.21

1. 쿠키(cookie)

  • 브라우저를 사용하는 환경(로컬 컴퓨터)에 서버에서 받은 데이터를 저장한 파일

  • 서버에 다시 데이터를 요청할 필요가 없기 때문에 속도가 빠르다.

  • 예) 자동 로그인, 비로그인 장바구니 등

 

2. 세션(session)

  • 쿠키가 사용자의 컴퓨터(브라우저)에 저장 된다면, 세션은 서버 쪽에 저장된다.

  • 쿠키와 역할은 비슷하지만 저장 위치가 다르다.

  • 쿠키는 브라우저를 종료해도 데이터가 소멸되지 않지만, 세션은 브라우저를 종료하면 데이터가 소멸되므로 비교적 보안이 강하다.

 

3. 캐시(cache)

  • 웹 페이지의 UI, 이미지 등이 서버에서 내 개인 PC로 전송되는 데이터들이 사용자의 컴퓨터에 캐시라는 저장 공간에 저장해두는 것

  • 원본 데이터에 접근하는 시간이 오래 걸리는 경우, 값을 다시 계산하는 시간을 절약하고 싶은 경우 사용된다.

  • 그다음부터는 웹 페이지를 열 때마다 서버가 아니라 캐시에 저장되어 있는 데이터를 사용하는 것이다.

  • 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 다 빠른 속도로 데이터에 접근할 수 있다.

프로그램(Program)

  • 운영체제 위에서 실행할 수 있는 파일 ex) 카카오톡, 크롬

 

프로세서(Processor)

  • 프로세스가 동작될 수 있도록 하는 하드웨어(=CPU)

  • 한순간에 하나의 프로세스만 실행할 수 있다.

 

프로세스(Process)

  • 메모리에 적재되어 프로세서에 의해 실행 중이거나 실행 대기 중인 프로그램

  • 한순가에 여러 가지 일을 하는 것처럼 보이지만 실제로는 짧은 시간에 프로세스를 교체하기 때문에 동시에 여러 개의 작업이 실행되고 있다고 느낀다.

프로세스의 상태

Context Swithching

프로세스 구조

  • 프로세스는 각각의 독립된 메모리 영역(Stack, Heap, Data, Code)을 할당 받는다.

멀티 프로세스

  • 실행 중인 프로세스에서 다음 프로세스로 넘어갈 때 각각의 영역을 따로 가지기 때문에 비효율이 발생한다.

  • 다른 프로세스의 정보를 이용하기 위해서 통신이 필요하다.

스레드 (Thread)

  • 프로세스 내에서 실행되는 작업의 흐름의 단위

  • 프로세스가 할당받은 자원을 이용하는 실행의 단위

  • 자원은 Process 단위로 받고 작업/스케줄링은 Thread 단위로 진행한다.

  • 스레드 간 전환 속도가 Stack영역만 처리하기 때문에 Context Switching 비용이 적게 든다.

  • 스레드는 프로세스 내에서 각각 Stack만 따로 할당 받고 Heap, Data, Code 영역은 공유한다.

Context Swithching

 

+ Recent posts