[네트워크] HTTP 프로토콜(1)

Dabin Lee·2023년 3월 8일
0

Network

목록 보기
1/2

HTTP 프로토콜

HTTP 프로토콜이란

  • HTTP(Hypertext Transfer Protocol) : 인터넷상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜
  • TCP/IP 위에서 작동하며, 기본 포트는 80번이다.
  • HTTP로 보낼 수 있는 데이터는 HTML문서, 이미지, 동영상, 오디오, 텍스트 문서 등 여러 종류가 있다.
  • 작동방식

    서버/클라이언트 모델 : 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)한다.

  • HTTP의 특징

    Connectionless : HTTP는 서버에 연결하고 요청하여 응답을 받으면 연결을 끊어버린다. 기본적으로는 자원 하나에 대하여 하나의 연결을 만든다.
    Stateless : HTTP는 상태가 없는(Stateless) 프로토콜이다. 여기서 상태가 없다는 것은 데이터를 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리된다는 말이다. 즉, 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다는 것이다. 이로 인해 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되며, 다수의 요청 처리 및 서버의 부하를 줄일 수 있다.

URI(Uniform Resource Identifiers)

  • 클라이언트 소프트웨어(IE, Chrome, Firefox, Safari 등)는 URI를 통해 자원의 위치를 찾는다.
  • URI는 HTTP와는 독립된 다른 체계로, HTTP는 전송프로토콜이고, URI는 자원의 위치를 알려주기 위한 프로토콜이다.
  • World Wide Web 상에서 접근하고자 하는 자원의 위치를 나타내기 위해 사용한다. 여기서 자원은 HTML문서, 이미지, 동영상, 오디오, 텍스트 문서 등 모든것이 될 수 있다.
  • 예시

    https://www.dcinside.com/index.php

    • https: 자원에 접근하기 위해서 https 프로토콜을 사용한다.
    • www.dcinside.com : 자원의 인터넷 상 위치는 www.dcinside.com이다. 도메인은 ip 주소로 변환되므로, ip 주소로 서버의 위치를 찾을 수 있다.
    • index.php : 요청할 자원의 이름이다.

URL

  • 서버에 자원을 요청하기 위해 입력하는 영문주소
  • URL의 구조

HTTP 요청 메소드

  • URL을 이용하면 서버에 특정 데이터를 요청할 수 있다. 여기서 요청하는 데이터에 특정 동작을 수행하고 싶으면 HTTP 요청 메소드를 이용하면 된다.
    • GET : 존재하는 자원에 대한 요청
    • POST : 새로운 자원을 생성. 때에 따라 POST로 PUT, DELETE의 동작 수행 가능
    • PUT : 존재하는 자원에 대한 변경
    • DELETE : 존재하는 자원에 대한 삭제
    • HEAD : 서버 헤더 정보 획득. GET과 비슷하나 Response Body를 반환 X
    • OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용

GET과 POST의 차이점

GET

  • 서버의 리소스에서 데이터를 요청할 때 사용(SELECT와 유사)
  • URL 파라미터에 요청하는 데이터를 담아 보내므로 HTTP 메시지에 body가 없음

POST

  • 서버의 리소스를 새로 생성하거나 업데이트할 때 사용(CREATE와 유사)
  • body에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재

HTTP 상태코드

URL과 요청 메소드가 클라이언트에서 설정해야 할 정보라면 HTTP 상태 코드는 서버에서 설정해주는 응답(Response) 정보이다.

참조 블로그

0개의 댓글