#24 TIL - 응용계층_HTTP

X's Dev·2024년 6월 20일
0

TIL

목록 보기
24/38
post-thumbnail

이번 포스트에서 HTTP에 대해 알아보려 한다.


HTTP의 정의

HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜로, 주로 웹 페이지를 전송하는 데 사용된다. HTTP는 클라이언트-서버 모델을 기반으로 하며, 클라이언트가 요청(request)을 보내고, 서버가 응답(response)을 반환하는 방식으로 동작한다.

이미지 출처 -https://www.geeksforgeeks.org/http-full-form/

HTTP의 특징

비연결성: HTTP는 비연결성 프로토콜이다. 즉, 클라이언트와 서버가 한 번의 요청-응답 후 연결을 끊는다. 다음 요청을 보내기 위해서는 다시 연결을 설정해야 한다.
무상태성: HTTP는 무상태성 프로토콜이다. 서버는 각 요청 간의 상태를 유지하지 않는다. 따라서, 각각의 요청은 독립적으로 처리된다.
확장성: HTTP는 확장성이 높아 다양한 형태의 데이터를 전송할 수 있다. 텍스트, 이미지, 비디오 등 다양한 콘텐츠 유형을 지원한다.

이미지 출처 - https://www.milesweb.in/blog/hosting/https-port/

HTTP의 동작 원리

HTTP는 다음과 같은 단계로 동작한다:

1.클라이언트가 웹 브라우저를 통해 URL을 입력한다.

2.웹 브라우저는 HTTP 요청 메시지를 생성하여 웹 서버에 전송한다.

3.웹 서버는 요청 메시지를 수신하고, 요청된 자원을 처리한다.

4.웹 서버는 처리 결과를 HTTP 응답 메시지에 담아 클라이언트에 전송한다.

5.클라이언트는 응답 메시지를 수신하여 웹 페이지를 렌더링한다.

HTTP 메시지 구조

HTTP 메시지는 요청(request) 메시지와 응답(response) 메시지로 나뉜다. 각각의 구조는 다음과 같다:

요청 메시지: 요청 라인, 헤더, 본문으로 구성된다. 요청 라인에는 메서드(GET, POST 등), URL, HTTP 버전이 포함된다. 헤더에는 클라이언트 정보, 요청 정보 등이 포함된다. 본문에는 전송할 데이터가 포함된다.
응답 메시지: 상태 라인, 헤더, 본문으로 구성된다. 상태 라인에는 HTTP 버전, 상태 코드(200, 404 등), 상태 메시지가 포함된다. 헤더에는 서버 정보, 응답 정보 등이 포함된다. 본문에는 응답 데이터가 포함된다.

이미지 출처 - https://www.studytonight.com/computer-networks/http-protocol

HTTP 메서드

HTTP는 다양한 메서드를 통해 클라이언트와 서버 간의 상호작용을 지원한다. 주요 메서드는 다음과 같다:

GET: 서버에서 데이터를 요청할 때 사용된다. 주로 웹 페이지를 요청할 때 사용된다.
POST: 서버에 데이터를 전송할 때 사용된다. 주로 폼 데이터를 제출할 때 사용된다.
PUT: 서버에 데이터를 업데이트할 때 사용된다.
DELETE: 서버에서 데이터를 삭제할 때 사용된다.
HEAD: GET 메서드와 유사하지만, 응답 본문을 포함하지 않는다. 주로 메타데이터를 확인할 때 사용된다.

이미지 출처 - https://softuni.org/dev-concepts/everything-you-need-to-know-about-http-protocol/

HTTP와 HTTPS

HTTP는 보안이 취약하다는 단점이 있다. 이를 보완하기 위해 HTTPS(HyperText Transfer Protocol Secure)가 사용된다. HTTPS는 HTTP에 SSL/TLS를 적용하여 데이터 전송 시 보안을 강화한다. 이를 통해 클라이언트와 서버 간의 통신을 암호화하고, 데이터의 무결성과 기밀성을 보장할 수 있다.

profile
성장 기록하기

0개의 댓글