이 글은 아예 프로그래밍을 모르는 비전공자를 기준으로 쓴 글이다.
web server
웹 전용 컴퓨터 정도의 개념
web hosting
웹 서버의 일정 공간만 빌리는 서비스
참고로 아래에서 host에 대해 말할 것이지만
미리 말해보면 network 에 연결된 모든 장치들을 node라고 부르는데 그 node들 중에서 IP주소가 할당된 node를 host 라고 부름
domain
DNS (Domain Name System)을 통해 domain 을 IP address (Internet Protocol address) 로 바꿔서 web 으로 들어감
web browser
우선 browse의 뜻은
'to look through a book or magazine without reading everything, or to walk around a shop looking at several things without intening to buy any of them'
즉, 한번 쓰윽 둘러보다 정도로 이해하면 됨
user computer가 internet에 접속해 web server로부터 가져온 수많은 정보들을 볼 수 있도록 하는 software
ex. Microsoft 의 internet explorer
ex. google 의 chrome
ex. apple 의 safari
ex. firefox
ex. samsung 의 samsung internet
ex. naver 의 whale

traffic (트래픽)
server의 data 전송량
정보량이 많을수록 traffic 용량도 많이 필요함
즉, 동시에 수많은 user들이 하나의 file 을 다운로드 받으면 traffic over (트래픽초과) 라는 문제가 발생함
PNG (Portable Network Graphic)
web 에서 image data 전송을 위해 설계된 이미지 format
cache (캐시)
주기적으로 사용되는 data나 value를 임시로 복사해 놓는 장소
memory 처리속도가 CPU 처리속도를 따라가지 못하는 문제 (Moore's law)를 해결하지 위해 등장함
CPU 보단 느리고 memory 보다는 빠름
cookie (쿠키)
data를 browser에 저장해두고 요청을 받을 때 server로 cookie를 전송함
browser에 저장하다보니 data 크기 제한이 있음
ex. 검색 등의 기록을 저장해두고 제품 추천, login 기록 저장

이에 따라서 보안이 굉장히 취약함
browser에 저장되어 있기 때문에 browser의 cookie data를 확인하면 정보 유출 위험
session (세션)
cookie와는 다르게 data를 server에 저장해둠
따라서, cookie에 비해 보안이 안전함
Protocol (프로토콜)
컴퓨터나 원거리 통신 장비 사이에서 메세지를 주고 받기 위한 양식과 규칙의 체계
즉, data를 주고받기(통신)를 위한 상호간 미리 약속한 규칙, 규약
HTTP (HyperText Transfer Protocol)
인터넷에서 data를 주고 받을 수 있는 protocol

HTTP는 굉장히 간단하지만 보안이 굉장히 취약하다는 단점이 있음
client 가 brower를 통해서 web server로 request를 보내면 data가 전송되는데 이 data에는 페이지 주소 등만 있는게 아닌 id, password 등 중요 data도 포함되어 있음
하지만 HTTP는 암호화하지 않은 상태로 전송을 하기 때문에 중간에 hacker가 data를 도청할 수 있음
HTTPS (HTTP over Secure socket layer)
HTTP 에 SSL (Secure Socket Layer) 이라는 기술을 추가한 것
쉽게 생각해 client의 전송 data를 암호화해서 server에게 전송한다는 개념
SSL (Secure Socket Layer)는 암호화 통신과 암호화 통신에 사용되는 key를 공유할 수 있는 기술
web server 를 운영하는 web site (naver, google 등)는 암호화 key 를 생성해서 하나는 자신들이 보관, 하나는 CA에 보관 보관하는 대신 돈을 지급
여기서 CA (Certificate Authority 인증기관)이 등장
CA는 암호화의 key를 가진 인증서를 발급하고 관리함
그렇다면 우리가 실제 사용할 때를 생각해보자
우리는 browser를 사용함
각 browser는 이미 CA 목록을 가지고 있음
따라서, browser에서 web server 와 통신하기 전에 CA list(목록)을 확인해서 지금 접근하려는 web server의 인증서가 있는지 확인하고 있으면 인증서를 받음


host
network 에 연결된 모든 장치들을 node라고 부름
그 node들 중에서 IP주소가 할당된 node를 host 라고 부름
즉, 인터넷으로 host끼리 data를 주고 받는다고 할 수 있음
엄밀히 말하면 network 공간에서 data를 주고받는다는 것은 host의 program. app, application, software 등의 프로세스까지 data가 오고 감
port (포트)
network를 통해 data를 주고받는 process (app, program, software 등)을 식별하기 위해 host 내부적으로 process가 할당받는 고유한 값
이는 숫자로 할당되기 때문에 port number 라고 부르기도 함
즉, data를 받고 보낼 때 port number도 같이 보내야 data를 주고 받을 수 있음
socket (소켓)
process가 network를 통해서 데이터를 주고받으려면 반드시 열어야하는 창구
process가 data를 다른 host에 data를 보내고 싶으면 보내는 쪽이 받는 쪽의 socket을 열어야 함 socket을 열기 위해서는 받는 쪽 host에 할당된 IP주소, port number, protocol 이 필요함
socket은 IP address, port, protocol 로 구성되기 때문
port와 socket의 관계
server의 경우, 보통 1개의 port만 할당받음
왜???
하나의 process는 하나의 port만으로도 여러 개의 socket을 만들 수 있기 때문 이 말이 정말 정말 중요!!
하나의 process는
같은 IP, 같은 port, 같은 protocol로 수십 수만개의 socket을 가질 수 있음
게임 server의 동시 접속자 수가 수십 수백만이 될 수 있는 이유가 바로 이것!!
'Web > 기본 개념' 카테고리의 다른 글
| 인터넷, 웹, TCP/IP, HTTP, 프로토콜, 네트워크 등 총정리 (0) | 2022.01.18 |
|---|---|
| 크롬 시크릿모드 : 무엇을 숨기는 걸까?? 왜 안전할까?? (0) | 2022.01.17 |
| html vs jsp 차이 (0) | 2021.11.29 |
| POJO, JPA, ORM, Hibernate 뭘까? 숲을 보자! (0) | 2021.11.14 |