본문 바로가기

IT Note/Note

[IT Note] HTTP

728x90

 

HTTP(Hypertext Transfer Protocol)의 정의 및 목적

  • 웹에서 하이퍼텍스트 문서를 교환하기 위한 통신 규약
  • 클라이언트(일반적으로 웹 브라우저)와 서버 간에 요청과 응답을 주고 받음



HTTP 특징 및 동작

  • 무상태(Stateless)
    • 각각의 요청은 이전 요청과 독립적
    • 서버는 클라이언트의 상태를 유지하지 않음
  • 요청 메서드(Methods)
    • GET(데이터 요청), POST(데이터 제출), PUT(데이터 업데이트), DELETE(데이터 삭제) 등
  • 헤더(Headers)
    • 요청과 응답에 대한 부가적인 정보를 전달하는데 사용
  • 상태 코드(Status Codes)
    • 서버의 응답을 나타내는 숫자 코드
    • 성공, 리다이렉션, 클라이언트 오류, 서버 오류 등
  • URL(Uniform Resource Locator)
    • HTTP 요청에서 사용되는 URL은 웹 리소스의 위치를 지정
      예: http://www.example.com/index.html



HTTP 쿠키 및 세션

  • 쿠키(Cookie)
    • 클라이언트의 로컬에 저장되는 작은 데이터 조각
    • 클라이언트와 서버 간의 상태를 유지하는 데 사용
  • 세션(Session)
    • 쿠키를 기반으로 클라이언트와 서버 간의 지속적인 상태를 유지하는 기술
  • 보안(HTTP Secure - HTTPS)
    • HTTPS는 HTTP의 보안 버전
    • SSL(보안 소켓 레이어) 또는 TLS(전송 계층 보안) 프로토콜을 사용하여 데이터를 암호화하고 보호
  • REST(Representational State Transfer)
    • HTTP를 기반으로 한 웹 서비스 아키텍처
    • 자원을 URI로 표현
    • HTTP 메서드(GET, POST, PUT, DELETE)를 통해 자원을 조작



HTTP 요청(Request) 구조

요청 라인(Request Line)

  • 메서드(Method)
    • 수행하고자 하는 동작을 나타냄
    • 예: GET, POST
  • URI(Uniform Resource Identifier):
    • 요청 대상의 자원을 식별
  • 프로토콜 버전(HTTP Version)
    • 사용하는 HTTP 프로토콜 버전
      예 : GET /index.html HTTP/1.1

헤더(Headers)

  • Host
    • 요청하는 호스트(도메인)의 정보
  • User-Agent
    • 클라이언트의 소프트웨어 정보
  • Content-Type
    • 요청 본문의 데이터 타입
  • 기타 다양한 헤더들이 존재
    예:
    Host: www.example.com
    User-Agent: Mozilla/5.0
    Content-Type: application/json

 

본문(Body):

  • POST 등의 메서드로 데이터를 전송할 때 사용되며 생략 가능
  • 요청의 본문에는 데이터가 포함
    예:
    user=abc&password=12345



HTTP 응답(Response) 구조

응답 라인(Status Line):

  • 프로토콜 버전(HTTP Version)
    • 사용하는 HTTP 프로토콜 버전
  • 상태 코드(Status Code)
    • 서버의 응답 상태를 나타내는 숫자 코드
  • 상태 메시지(Reason Phrase)
    • 상태 코드에 대한 짧은 설명
      예:
      HTTP/1.1 200 OK

 

헤더(Headers)

  • Server
    • 서버의 소프트웨어 정보.
  • Content-Type
    • 응답 본문의 데이터 타입
  • 기타 다양한 헤더 존재
    예:
    Server: Apache/2.4.1
    Content-Type: text/html

 

본문(Body)

  • 서버에서 클라이언트로 전송되는 데이터가 포함
  • HTML 문서, JSON 데이터 등
    예:
    <html>
    <body>
     <h1>Hello, World!</h1>
    </body>
    </html>

 

 

728x90
반응형