Network/HTTP

HTTP

busy맨 2024. 6. 27. 17:58

1. HTTP(HyperText Transfer Protocol)

1) HTTP 개요

  • 웹 상에서 정보를 주고 받을 수 있는 프로토콜
    • 주로 HTML 문서를 주고 받음
    • 서버와 클라이언트 사이에 요청과 응답을 주고 받는 프로토콜
  • 클라이언트/서버 프로토콜
    • = Request/Response 프로토콜
      • 클라이언트와 서버는 개별 메세지를 교환하여 통신
      • Request는 클라이언트가 보낸 메세지, Response는 서버가 클라이언트 요청에 대한 응답 메세지
    • Request는 수신자(ex. 웹 브라우저)에 의해 시작
  • TCP를 사용하며 80번 포트 이용하는 L7 애플리케이션 계층 프로토콜

 

 

2. HTTP  시스템 구성요소

 

  • 클라이언트
    • 사용자를 대신하여 작동하는 모든 도구로 주로 웹 브러우저에 의해 수행
  • 웹 브라우저
    • 항상 요청을 시작하는 개체
    • 웹 페이지를 표시하기 위해 브라우저는 페이지를 나타내는 HTML 문서를 가져오라는 요청을 보냄
  • 웹 서버
    • 클라이언트의 요청에 따라 문서를 제공하는 서버
  • 프록시
    • 클라이언트와 서버 사이에 위치하여 내용을 전달하는 중개자 역할을 하는 컴퓨터
      1. 캐시 기능(데이터 임시 저장)
      2. 보안 기능(바이러스 검출, 부정 침입 방지, 유해 사이트 차단)

 

2. 요청(Request) / 응답(Response)

1) 요청(Request)

  • 클라이언트가 서버에 보내는 메세지
  Request
시작 줄(Start-line) HTTP 메서드, 요청 URL, HTTP 버전
HTTP 헤더(Header) Request 헤더, General 헤더, Entity 헤더
공백(empty line) 메타 데이터 전송이 끝났음을 알리는 공백
바디(Body) 서버에 전송할 데이터

 

2) 응답(Response)

  • 클라이언트의 요청을 서버가 응답
  Response
시작 줄(Start-line) HTTP 버전, 상태 코드, 상태 텍스트
HTTP 헤더(Header) Response 헤더, General 헤더, Entity 헤더
공백(empty line) 메타 데이터 전송이 끝났음을 알리는 공백
바디(Body) 클라이언트에 전달하는 데이터

 

3) HTTP 메서드

  • 클라이언트가 서버에 요청의 목적 및 종류를 알리는 수단
  • 메세지 Start-line에 표시
Method 설명
GET 리소스 요청
POST 서버에 내용(파일 포함) 전송
HEAD 메세지 헤더(문서 정보) 요청
PUT 리소스 전체 수정 요청
DELETE 리소스 제거 요청
OPTIONS 서버에서 제공하는 메서드 목록 요청
TRACE 요청 리소스가 수신되는 경로를 보여줌
CONNECT 프록시 서버와 같은 중간 서버 경유
PATCH 리소스 부분 수정 요청

 

4) HTTP 헤더

  • key : value 방식으로 표기
  • Request 헤더
헤더 명 설명
Host 요청하는 호스트에 대한 호스트 명 및 포트번호
User-Agent 클라이언트 소프트웨어(웹 브라우저, 모바일)의 이름과 버전 등의 정보
Accept 클라이언트가 원하는 미디어 타입 및 우선순위
Accept-Language 클라이언트가 원하는 가능한 언어
Accept-Encoding 클라이언트가 원하는 문자 인코딩 방식
If-Modified-Since 제시한 일시 이후로 변경된 리소스 요청
Cookie 서버에 의해 Set-Cookie로 클라이언트에 설정된 쿠키 정보
Referer 특정 페이지에서 링크를 클릭하여 요청할 때, 직전에 머물렀던 링크 주소

 

  • Response 헤더
헤더 명 설명
Server 서버 소프트웨어 정보
Access-Control-Allow-Origin 요청을 보내는 프론트 주소와 백엔드 주소가 다르면 CORS 에러 발생
Set-Cookie 서버에서 클라이언트로 쿠키 생성
Etag HTTP 컨텐츠가 바뀌었는지 검사하는 태그
Allow 서버에서 지원가능한 HTTP 메소드 리스트

 

  • General 헤더
헤더 명 설명
Date HTTP 메세지 생성 일시
Connection 커넥션 정보(Keep-Alive, Token List)
Cache-Control 캐싱 관련 옵션

 

  • Entity 헤더
헤더 명 설명
Content-Type 미디어 타입 정보

 

5) HTTP 상태 코드

  • 응답 메세지 중 Start-Line에 표기
  • Request에 대한 처리 결과를 알려줌
    1. 1XX : 정보성
    2. 2XX : 성공
    3. 3XX : 리다이렉션
    4. 4XX : 클라이언트 오류
    5. 5XX : 서버 오류

'Network > HTTP' 카테고리의 다른 글

GET & POST  (0) 2024.06.27