네트워크란?
- 컴퓨터끼리의 데이터 통신망이 그물처럼 연결되어 있는 것.
웹 동작 방식

1. 브라우저에 URL을 입력
2. 브라우저는 DNS에 연결된 서버의 진짜 주소를 찾음
3. HTTP 프로토콜을 통해 HTTP 요청 생성
4. TCP/IP 연결로 HTTP 요청을 서버에 전달
5. 서버는 HTTP 프로토콜을 통해 HTTP 응답 생성
6. TCP/IP 연결을 통해 HTTP 응답을 요청 컴퓨터로 전송
7. HTTP 응답은 웹페이지 데이터로 변환해 브라우저에 출력 됨
TCP와 HTTP차이
- HTTP는 비연결형 프로토콜이나 TCP 연결형
- HTTP는 단방향 TCP는 양방향 통신 가능
- HTTP는 응용 계층(7)이나 TCP는 전송 계층(4)
TCP와 UDP 차이

TCP
- 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정
- 높은 신뢰성을 보장하나 속도가 느림
- 신뢰성이 중요할 때 사용
UDP
- 비연결형 서비스로 3-way handshaking 과정이 없음
- 신뢰성이 떨어지나 속도가 빠름
- 속도가 중요할 때 사용
3-Way handshakzing
단계
1. SYN : 클라이언트가 서버에 연결 요청(SYN패킷)
2. SYN-ACK : 서버가 연결 요청을 수신하면 서버가 클라이언트에 응답(SYN-ACK패킷)
3. ACK : 클라이언트는 서버의 응답 수신 후 ACK패킷을 서버에 보내 연결을 확립
GET과 POST 차이

GET
- 데이터 조회시 사용, URL에 데이터가 노출됨
- HTTP 헤더에 데이터가 위치함
- 캐싱이 가능
POST
- 데이터 추가 또는 수정시 사용, URL에 데이터가 노출되지 않음
- HTTP Body에 데이터가 위치
- 캐싱이 불가능
PUT과 PATCH 차이
PUT
- 전체 리소스 업데이트시 사용, 요청 데이터에 리소스의 전체 필드를 포함.
- 리소스의 위치를 지정해야 함.
- 일반적으로 idempotent(멱등성)하며, 동일한 요청을 여러 번 보내더라도 결과는 동일함.
PATCH
- 리소스의 일부를 업데이트시 사용, 요청 데이터에 변경 필드만 포함.
- 리소스의 위치를 지정해야 함.
OSI 7계층

- 7 계층(응용 계층) : 사용자와 직접 상호작용하는 계층
- 6 계층(표현 계층) : 데이터의 형식을 정의하는 계층
- 5 계층(세션 계층) : 컴퓨터 통신을 위한 세션을 만드는 계층
- 4 계층(전환 계층) : 데이터의 전송 담당 계층
- 3 계층(네트워크 계층) : 패킷을 목적지에 최적화 경로로 전송하기 위한 계층
- 2 계층(데이터링크 계층) : 데이터의 물리 전송과 에러 검출, 흐름 제어 담당 계층
- 1 계층(물리 계층) : 데이터를 전기 신호로 변환하는 계층
HTTP?
- 서버-클라이언트 모델의 데이터 전송 프로토콜로 무상태가 특징
- 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 동작
- 메서드, 경로(Url), 프로토콜 버전, 헤더, 바디 등으로 구성

HTTP vs HTTPS
- HTTP는 평문 데이터 전송 프로토콜로 정보를 주고 받을시 제3자에게 노출될 수 있음.
- HTTPS는 HTTP에 암호화가 추가된 프로토콜로 대칭키와 비대칭키 암호화 모두 사용
HTTPS 과정
- 클라이언트가 서버로 최초 연결 시도
- 서버는 공개키와 CA 인증서 전달
- 클라이언트는 인증서의 유효성 검사후 세션키 발급
- 클라이언트는 서버의 공개키로 세션키 암호화후 서버로 전송
- 서버는 암호화된 세션키를 개인키로 복호화해 세션키 획득
- 클라이언트와 서버는 동일한 세션키를 공유해 데이터 전달시 세션키로 암호화/복호화 진행
출처
https://mangkyu.tistory.com/91
좋은 글 감사합니다!