
HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고 받기 위한 프로토콜이며, 서버/클라이언트 모델을 따릅니다.HTTP는 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless의 특징을 가지고 있습니다.
장점
통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단하다.
각각의 HTTP 요청에 독립적으로 응답만 보내주면 OK
단점
이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 한다.
이를 해결하기 위해 쿠키(cookie)나 세션(session)을 사용해서 데이터를 처리한다.
HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에, HTTP로 중요한 정보를 주고 받으면 제 3자에 의해 조회될 수 있습니다. 이러한 문제를 해결하기 위해 HTTP에 암호화가 추가된 프로토콜이 HTTPS입니다.HTTPS는 SSL의 껍질을 덮어쓴 HTTP라고 할 수 있습니다.
※ SSL(Secure Socket Layer) 인터넷을 통해 전달되는 정보를 보호하기 위해 개발한 통신 규약

1.사용자가 브라우저에 URL(www.naver.com)을 입력
2.DNS 서버에 도메인 네임으로 서버의 진짜 주소를 찾음
3.IP 주소로 웹 서버에 TCP 3 handshake로 연결 수립
4.클라이언트는 웹 서버로 HTTP 요청 메시지를 보냄
5.웹 서버는 HTTP 응답 메시지를 보냄
6.도착한 HTTP 응답 메세지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력
쿠키는 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일입니다. HTTP에서 클라이언트의 상태 정보를 PC에 저장했다가 필요시 정보를 참조하거나 재사용할 수 있습니다.
세션은 일정 시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술입니다.즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 합니다.

TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만, 속도가 비교적 느리다는 단점이 있습니다.
UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에 신뢰성이 떨어지는 단점이 있지만, 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다는 장점이 있습니다.
JWT는 JSON 포맷을 이용하는 Claim 기반의 웹 토큰이며, 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달합니다. JWT는 헤더(Header).내용(Payload).서명(Signature)로 구성되며 각 파트를 점(.)으로 구분합니다.
헤더(Header) : 토큰의 타입과 해시 암호화 알고리즘(방식지정)으로 이루어져 있다.
내용(Payload) : 토큰에 사용자가 담고자 하는 정보를 담는다. 내용에는 Claim이 담겨있고,JSON(Key/Value)형태의 한 쌍으로 이루어져 있다.
서명(Signature) : 토큰을 인코딩하거나 유효성 검증할 때 사용하는 고유한 암호화 코드이다. 헤더와 내용의 값을 인코딩한다.

7 계층(응용 계층) : 사용자에게 통신을 위한 서비스 제공. 인터페이스 역할
6 계층(표현 계층) : 데이터의 형식(Format)을 정의하는 계층
(코드 간의 번역을 담당)
5 계층(세션 계층) : 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층
4 계층(전송 계층) : 최종 수신 프로세스로 데이터의 전송을 담당하는 계층
(단위 :Segment) (ex. TCP, UDP)
3 계층(네트워크 계층) : 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층
(단위 :Packet) (ex. Router)
2 계층(데이터링크 계층) : 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층
(단위 :frame) (ex. 이더넷)
1 계층(물리 계층) : 데이터를 전기 신호로 바꾸어주는 계층 (단위 :bit) (장비: 케이블,리피터,허브)
출처: https://dev-coco.tistory.com/161 [슬기로운 개발생활:티스토리]