일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- BOJ
- 비전공자
- CPU의 구성요소
- 빈 라인
- transiant
- 코딩테스트
- HTTP
- 백준
- 개발공부
- 공부
- 개발자
- 자바
- 문자열
- Java
- 2903
- 파이썬
- 백엔드
- CS지식
- LAMBDA
- 인터럽트핸들러
- 딩코딩코
- 백엔드 면접지식
- 알고리즘
- 카카오톡API
- AWS
- Roy Fielding
- hELLO 스킨
- it세계의 괴물들
- mac 코드 블럭
- 그림자 문제
- Today
- Total
아직은 NULL NULL 합니다
HTTP(Hyper Text Transfer Protocol) 의 개념, 특징 및 HTTP/2, HTTP/3, HTTPS 의 차이점을 가볍게 알아보자. 본문
HTTP(Hyper Text Transfer Protocol) 의 개념, 특징 및 HTTP/2, HTTP/3, HTTPS 의 차이점을 가볍게 알아보자.
is낫널 2023. 9. 19. 00:38서론
블로그 쓰는 일이 여간 쉬운 일이 아니다.
그래도 이렇게 CS 스터디를 하다 보니 공부한 내용을 정리할 겸 1일 1 블로그를 강제라도 하는 기분이다 ㅎ..ㅎ
근데 또 주기적으로 이 블로그에 들어오니까 금새 나만의 블로그라는 정이 생긴 것 같기도 하다.
어찌 됐든 데이터가 쌓여서 내게 도움이 되길 바라는 마음으로 공부했던 내용을 또 써 내려가보자.
해당 더보기 는 이 글을 읽으면서 헷갈릴 만한 개념을 정리한 내용이 담겨있습니다.
개념 정리
- 프로토콜(protocol)
- 컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약
- ASCII (아스키코드)
- 영문 알파벳을 사용하는 대표적인 문자 인코딩이다.
- 인코딩 이란, 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다.
본론
HTTP(Hyper Text Transfer Protocol) 란?
텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다.
조금 더 자세히 설명하자면,
HTML, CSS, JavaScript, image 같은 콘텐츠(JSON 데이터 및 XML 형태의 정보도 가능하다.)를
주고받기 위해서 클라이언트와 서버가 서로 알아들을 수 있는 공통의 약속인 메시지가 필요한데, 그것을 HTTP라고 한다.
HTTP의 동작흐름
클라이언트가 요청(Request)을 보내면, 서버 측에서 응답(Response)을 하는 구조로 동작한다.
→ 이때, 클라이언트와 서버 사이의 소통은 평문(ASCII) 메시지로 이루어진다.
클라이언트 - 서버 간의 HTTP 통신 예시
- 클라이언트 측에서 로그인을 하기 위해 아이디와 비밀번호에 대한 정보를 입력하여, 서버 측으로 요청을 보낸다.
- 아이디와 비밀번호를 받은 서버 측은 데이터베이스에서 해당 아이디와 비밀번호가 들어맞는 회원을 찾아 클라이언트에게 응답을 보낸다.
HTTP의 특징
- 연결 상태를 유지하지 않는 비연결성 프로토콜(Stateless Protocol)이다.
- 비연결성이라고 얘기하는 것은 이전 요청과 다음 요청이 연결되어 있지 않다는 의미이다.
즉, 지속적으로 연결되지 있지 않다는 의미이며, 하나의 요청/응답 안에서는 연결된 상태로 통신하는 것이다.
▶ 그래서, TCP 기반으로 동작한다는 것은 하나의 요청 - 응답 내의 이야기를 말하는 것이다. - 비연결성 프로토콜이라는 특징은 로그인을 한 회원의 상태를 유지하지 않기 때문에(다시 리로드 되었을 때 로그아웃 되어있는 경우)Cookie와 Session을 통해 회원의 상태를 유지할 수 있다.
- 비연결성이라고 얘기하는 것은 이전 요청과 다음 요청이 연결되어 있지 않다는 의미이다.
- OSI 네트워크 통신 모델의 애플리케이션 계층(Application Layer) 프로토콜이다.
- 애플리케이션 계층의 프로토콜은 전송 계층(Transport Layer) 프로토콜(TCP / UDP)을 사용하여 호스트 간 연결을 확립한다.
- HTTP는 주로 TCP 기반으로 동작하며, HTTP/3 부터는 UDP 를 사용한다.
- HTTP 는 기본 80 포트 을 사용한다.
- http://www.daum.net으로 접속하여도 http://www.daum.net:80으로 접속과 동일하다. → 기본 80 포트가 생략되었음을 의미한다.
HTTP 메시지 구조
HTTP Method
서버로 어떤 목적을 가지고 요청을 하는지 표시해 주는 것이 HTTP Method이다. 그 안의 대표적인 메서드가 GET, POST이다. 이다.
하지만 요즘에는 DELETE, PUT 등 요청에 명확한 의미를 주고자 다양한 메서드가 생기게 되었다.
- 요청의 종류
- GET : 자료를 요청할 때 사용
- 특징 : 요청 URL에 데이터를 붙여서 전송
- 단점
- 요청 URL 길이에 제한이 있다.
- 전송 데이터 노출에 따른 위험이 있다.
- POST : 자료의 생성을 요청할 때 사용
- 특징
- HTTP body에 데이터를 담아서 전송
- 데이터 전송 길이에 대한 제한이 없다.
- HTTP body 에 데이터를 담으므로 노출이 되지 않는다.
- 하지만 이는, 보안성과는 아무런 관련이 없다. body의 정보도 중간에 가로채서 보려고 하면 볼 수 있기 때문이다. → 데이터를 암호화하기 위해서는 HTTPS 프로토콜을 사용해야 한다.
- 특징
- GET : 자료를 요청할 때 사용
HTTP/2, HTTP/3, HTTPS의 차이점은 무엇인가?
1996 ~ 1997 년에 출시된 최초의 HTTP 버전이 HTTP/1.1이다.
HTTP/2와 HTTP/3 은 프로토콜 자체를 업그레이드 한 버전이다.
HTTP/2 의 특징
- 텍스트 형식 대신, 바이너리로 데이터를 교환한다.
- 서버가 새 HTTP 요청을 기다리는 대신, 클라이언트 캐시에 응답을 사전에 전송할 수 있다.
HTTP/3 의 특징
- 비교적 최근에 나온 버전으로, HTTP/2 를 한 단계 발전시킨 것이다.
- HTTP/3 의 목표는 실시간 스트리밍 및 기타 최신 데이터 전송 요구 사항을 보다 효율적으로 지원하는 것으로 OSI 네트워크 계층 통신 모델의 전송 계층(Transport Layer) 의 UDP 기반으로 동작한다.
여기서 HTTPS 란, HTTP 에서 데이터 보안 문제를 우선시 함으로써 등장하게 된 프로토콜로 HTTP 프로토콜에 secure socket layer(SSL)가 붙은 프로토콜이다. 최신 시스템에서는 SSL/TLS 와 함께 HTTP/2 를 HTTPS 로 사용하고 있다.
HTTPS 의 특징
- 기본 443 번 포트를 사용한다.
- 이를 사용하려면 Tomcat 서버에 secure socket layer(SSL) 프로토콜 까지 연동을 해야 한다.
HTTP/3 에 관한 내용은 문동욱 개발자님의 블로그를 보고 둘러보는 것을 추천합니다.
내용이 정말 자세하고 설명을 잘해주셔서 감탄하면서 보았던 글입니다!
HTTP/3는 왜 UDP를 선택한 것일까?
는 의 세 번째 메이저 버전으로, 기존의 HTTP/1, HTTP/2와는 다르게 UDP 기반의 프로토콜인 을 사용하여 통신하는 프로토콜이다. HTTP/3와 기존 HTTP 들과 가장 큰 차이점이라면 TCP가 아닌 UDP 기반의 통
evan-moon.github.io
'Computer Science > 네트워크' 카테고리의 다른 글
REST, REST API, RESTful API 란 ? (0) | 2023.10.26 |
---|