상세 컨텐츠

본문 제목

웹 통신 기본 - HTTP 정의

웹 IT 지식정보

by hong_2 2021. 7. 20. 11:06

본문

프로토콜의 종류

프로토콜은 통신 프로토콜 또는 통신 규약을 의미하며 컴퓨터나 원거리 통신 장비 사이에서 주고 받는

양식의 규칙과 체계를 의미한다.

 

HTTP (Hyper Text Transfer Protocol)

HTTP(Hyper Text Transfer Protocol)란 W3 상에서 정보를 주고받을 수 있는 프로토콜이다.

주로 HTML 문서를 주고받는 데에 쓰인다. 주로 TCP를 사용하고 HTTP/3 부터는 UDP를 사용하며

80번 포트를 사용한다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다.

예를 들면, 클라이언트는 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림을 요청하면, 서버는

이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다.

HTTP (Hyper Text Transfer Protocol over Secure Soket layer)

HTTPS는 HTTP의 보안이 강화된 버전이다. HTTPS는 소켓 통신에 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션을 데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는 443이다.

IP (Internet Protocol)

아이피라고 불리는 인터넷 프로토콜은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 

TCP (Transmission Control Protocol)

TCP(Transmission Control Protocol)은 인터넷 프로토콜 스위트(Internet Protocol Suite)의 핵심 프로토콜 중 하나로,

IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(8 Bit, 1 Byte)을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.

UDP (User Datagram Protocol)

UDP(Usder Datagrm Protocol), 사용자 데이터그램 프로토콜은 인터넷 프로토콜 스위트(Internet Protocol Suite)의 주요 프로토콜 가운데 하나이다. UDP의 전송 방신은 너무 단순해서 서비스의 신뢰성이 낮고, 데이터그램 도착 순서가 바뀌거나, 중복되거나, 심지어 통보 없이 누락시기도 한다. 

 

TCP와 UDP의 비교
1. TCP는 양방향으로 데이터를 전송하지만, UDP는 단방향이다.
2. TCP는 메시지 수신을 확인하지만, UDP는 수신자가 메시지를 수신했는지 확인할 수 없다.
3. TCP는 메시지가 보내진 순서를 보장하기 위해 재조립하지만 UDP는 메시지 도착 순서를 예측할 수 없다.

 

FTP (File Transfer Protocol)

TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜이다.

 

 

웹 작동 방식

도메인 네임

도메인 네임은 넓은 의미로는 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미한다. 이를 통틀어서 ‘웹 주소’라고 부르는 경우도 있다.

DNS (Domain Name System)

DNS(Domain Name System)은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 IP로 변환해 준다.

URL (Uniform Resource Locator)

URL(Uniform Resource Locator)는 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.

 

웹 동작 흐름

 

  1. 사용자 
  2. 웹 페이지 URL을 입력함.
  3. 사용자가 입력한 URL 주소 중에서 도메인 네임 부분을 DNS(도메인 네임 시스템) 서버에서 검색
  4. DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달
  5. 웹 페이지 URL 정보와 전달받은 IP주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성
  6. 생성된 HTTP 요청 메세지는 TCP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환

 

HTTP 프로토콜

HTTP request / reponse 구조

출처:https://velog.io/@sdc337dc/%EC%9B%B9-%EA%B0%9C%EB%85%90-Http-%ED%86%B5%EC%8B%A0

 

HTTP 요청과 응답의 구조는 서로 닮았으며, 그 구조는 다음과 같다.

  1. 시작 줄(start-line)에는 실행되어야 할 요청, 또은 요청 수행에 대한 성공 또는 실패가 기록되어 있다. 이 줄은 항상 한 줄로 끝난다.
  2. 옵션으로 HTTP 헤더 세트가 들어간다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어간다.
  3. 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(blank line)이 삽입된다.
  4. 요청과 관련된 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어간다. 본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시된다.

 

출처:https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head)라고 부르며, 이와 반대로 HTTP 메시지의 페이로드는 본문(body)이라고 한다.

HTTP request 메서드

  1. GET
    GET 메서드는 특정 리소스의 표시를 요청한다. GET을 사용하는 요청은 오직 데이터를 받기 위해 사용한다.

  2. HEAD
    HEAD 
    메서드는 GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않는다.

  3. POST
    POST 메서드는 특정 리소스에 엔티티를 제출할때 쓰입니다. 데이터 업데이트, 삭제, 변경하기 위해 사용한다.

  4. PUT
    PUT 메서드는 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다.

  5. DELETE
    DELETE 메서드는 특정 리소스를 삭제한다.

  6. CONNECT
    CONNET 메서드는 목적 리소스로 식별되는 서버의 터널을 맺는다.
  7. OPTIONS
    OPTIONS 메서드는 목적 리소스의 통신을 설정하는데 쓰인다.

  8. TRACE
    TRACE 메서드는 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 한다.

  9. PATCH
    PATCH 메서드는 리소스의 부분만을 수정하는 데 쓰인다.

http request 요청에서는 보통 GET과 POST 방식을 쓰므로 이 둘을 알아두면 된다.

 

GET 과 POST의 차이
1. GET은 서버의 리소스에서 데이터를 요청할때 사용되며, POST는 서버의 리소스를 새로 생성하거나 업데이트할때 사용된다.
2. GET은 URL 파라미터(header)에 요청 데이터를 넣어보내기 때문에 body가 없고 POST의 경우는 body에 데이터를 담아 보내기 때문에 body가 존재한다. 따라서 GET 메서드의 경우 데이터가 URL에 노출되므로 보안상 취약할 수 있어 민감한 정보의 경우는 POST 방식을 사용하는게 좋다.
3. GET 메서드는 캐싱이 가능하나 POST 방식은 캐싱할 수 없다.

 

 

 

 

 

 

참고 자료

https://ko.wikipedia.org/wiki/

 

도메인 네임 - 위키백과, 우리 모두의 백과사전

온전한 자격을 갖춘 도메인 네임의 레이블 계층. 도메인 네임(Domain name, 문화어: 령역이름)은 넓은 의미로는 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인

ko.wikipedia.org

http://tcpschool.com/webbasic/works

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

 

HTTP 메시지 - HTTP | MDN

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

 

HTTP 요청 메서드 - HTTP | MDN

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부

developer.mozilla.org

 

댓글 영역