[내일배움캠프 Spring 4기] 47일차 TIL - HTTP | Protocol | URL

서예진·2024년 2월 17일
0

오늘의 학습 키워드💻

▸ 코드카타
▸ HTTP
▸ Protocol
▸ URL


▼ 코드카타

2024년 2월 15일 - [프로그래머스] 23 : 피보나치 수 | 카펫


▼ HTTP

HTTP란?

  • 데이터를 주고 받는 양식을 정의한 "통신 규약" 중 하나가 HTTP
    -> 통신 규약 중 하나라면 통신 규약은 여러개 인가? [[Protocol]]
  • 메우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약
  • 여기서 말하는 통신규약이란, 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미
  • 현재 이용되는 대부분의 웹 서버가 HTTP를 기반으로 정해준 규칙에 맞게 데이터를 주고 받음
  • 또한, 모든 브라우저는 HTTP 프로토콜을 기본으로 지원하기 때문에 매일 HTTP를 이용하는 셈

어떻게 HTTP로 데이터를 주고 받는지

  • HTTP에서는 언제나 Request, Response라는 개념이 존재
  • 서버와 브라우저의 관계로 가볍게 말해보면 아래와 같이 동작
    1. 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)
    2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고 있다면 해당 페이지에 대한 데이터를 실어 응답(Response)해줌. 없다면 없는 페이지에 대한 데이터를 반환
    3. 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줌
  • 그리고 위와 같은 사레에서 "데이터"는 어떠한 데이터든 주고 받는게 가능

HTTP 구성요소: 챗 gpt

  1. 요청(Request):
    • 요청 라인(Request Line): GET /search?q=http HTTP/1.1
      • 요청 메서드: GET
      • 요청 URI: /search?q=http
      • HTTP 버전: HTTP/1.1
    • 헤더(Header):
      • Host: www.example.com
      • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36
      • Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    • 본문(Body): GET 요청에서는 본문이 없습니다.
  2. 응답(Response):
    - 상태 라인(Status Line): HTTP/1.1 200 OK
    - 상태 코드: 200
    - 상태 메시지: OK
    - HTTP 버전: HTTP/1.1
    - 헤더(Header):
    - Date: Sun, 20 Feb 2024 12:00:00 GMT
    - Content-Type: text/html; charset=utf-8
    - Content-Length: 12345
    - 본문(Body): HTML 문서의 내용이 포함됩니다.
    위 예시에서는 HTTP 요청과 응답의 구성 요소를 보여줍니다. 요청은 클라이언트(웹 브라우저)에서 서버(www.example.com)로 보내는 메시지이며, 응답은 서버에서 클라이언트로 보내는 메시지입니다. 요청은 요청 라인과 헤더로 구성되며, 응답은 상태 라인과 헤더로 구성됩니다. 요청과 응답의 본문에는 해당 메시지에 대한 데이터가 포함될 수 있습니다.

▼ Protocol

  • 통신 규약은 시스템 간에 데이터를 주고 받는 방식을 정의한 규칙이며, 다양한 프로토콜이 존재한다.

HTTP:

  • 웹에서 가장 일반적으로 사용되는 통신 규약으로, 클라이언트와 서버 간에 텍스트 기반의 메시지를 주고 받음
    => 웹 브라우저와 웹 서버 간에 데이터를 주고받는 데 사용되는 프로토콜
  • 주로 HTML문서, 이미지, 동영상 등의 웹 콘텐츠를 전송
  • 요청-응답 형태로 동작하며, TCP/IP 위에서 작동
  • RESTful APL 등에서도 많이 사용된다.

TCP/IP:

  • 인터넷 상에서 데이터를 전송하는 데 사용되는 프로토콜 스택
  • TCP는 신뢰성 있는 연결 지향적인 통신을 제공하며, 데이터 전송 중에 손실이나 손상이 없도록 보장
  • IP는 패킷 교환 네트워크에서 데이터를 패킷 단위로 라우팅하고 전달

SMTP:

  • 이메일을 전송하기 위한 표준 프로토콜
  • 이메일 클라이언트가 이메일 서버에 전송한 이메일을 다른 이메일 서버로 전송하는 데 사용됨
  • 주로 전자우편의 송수신에 사용됨

FTP:

  • 파일을 컴퓨터 네트워크 상에서 전송하기 위한 표준 프로토콜
  • 클라이언트와 서버 간에 파일을 전송하고 관리하기 위한 명령 및 데이터 전송 방법을 정의

WebSocket:

  • 양방향 통신을 지원하는 TCP 기반의 통신 프로토콜로 실시간 웹 애플리케이션을 구축하는 데 사용됨
  • HTTP와는 달리 양방향 통신을 지원하므로, 서버가 클라이언트에게 데이터를 푸시할 수 있음

▼ URL

  • URL은 웹 상에서 특정 리소스(자원)의 위치를 가리키는 주소
  • 주로 웹 브라우저에서 사용되며, 다음과 같은 구조를 가지고 있음

프로토콜://도메인주소:포트번호/경로?쿼리스트링#프래그먼트

  • 프로토콜: 리소스에 접근하기 위해 사용되는 프로토콜, http, https, ftp [[Protocol]]
  • 도메인 주소: 리소스가 위치한 서버의 도메인 주소, 일반적으로 사이트의 주소를 의미
  • 포트번호: 웹 서버의 포트번호를 나타냄, 포트번호는 생략될 수 있음
  • 경로: 서버 내의 특정 리소스의 경로
  • 쿼리스트링: 서버에 전달되는 추가적인 매개변수
  • 프래그먼트: HTML 문서 내에서 특정 섹션을 가리키는 링크를 나타냄, 주로 웹 페이지 내의 특정 위치로 이동하기 위해 사용됨
profile
안녕하세요

0개의 댓글