우당탕탕 개발일지

27일차_HTTP 구조 본문

취준/개념

27일차_HTTP 구조

ujin302 2024. 4. 15. 23:10
반응형

Get, Post에 대해서 공부를 하였는데 HTTP의 구조를 잘 알지 못해 이해하는데 어려움이 있었다. 


HTTP 구조에 대해서 살펴보겠다. 

 

1. HTTP 구조 

웹에서 이루어지는 데이터 교환 프로토콜(규약)

클라이언트 - 서버 프로토콜 

 

1-1. Request (요청) 

클라이언트 -> 서버

 

 

HTTP Request Message는 4가지 부분으로 나눠진다. 

1. Start Line

2. Request Header

3. 공백

4. Body

 

1. Start Line

Http Request Message의 시작 라인이며 3가지 부분으로 구성

1. HTTP Method

  • 클라이언트가 수행하고자 하는 데이터 처리 방식
  • Get, Post. Put, Delete 등 존재
  • Get은 리소스를 클라이언트로 가져다 달라는 것을 뜻하며 Post는 데이터가 서버로 들어가야 함을 의미 

2. Request target 

  • URL
  • 가져오려는 리소스의 경로 
  • 전송되는 목표 주소 
  • URL은 Method에 따라 구성이 달라짐 . 

3. HTTP Version 

  • HTTP 프로토콜의 버전
  • 메세지 구조나 데이터가 다룰 수 있기에 Version 명시함

 

2. Header

해당 Request에 대한 추가 정보를 담고 있는 부분 

 

다양한 종류가 있지만 대표적인 요소에 대해서 알아보겠다. 

 

Host : 요청하려는 서버 호스트 이름과 포트번호

User-Agent : 클라이언트 프로그램 정보(종류 및 버전). 이 정보를 통해 서버는 클라이언트 프로그램(엣지, 크롬 등 브라우저)에 맞는 최적의 데이터 전송 

Referer : 바로 직전에 머물렀던 웹 링크 주소 

Accept : 클라이언트가 처리 가능한 미디어 타입 종류 나열

If-None : 조건에 따른 제약 사항

Cookie : 쿠키 값이 key-value로 표현 

 

Content-Type : Body에 데이터를 넣는 경우에만 사용하며 반환된 컨텐츠의 타입 설정 

설정에 관련된 부분은 해당 블로그 참고 : 2024.04.11 - [취준/개념] - 26일차_요청 방식 Get vs Post

 

 

3. 공백 라인

Hearder와 Body 구분 

 

4. Body 

보통 Body가 필요 없지만 일부 요청은 업데이트를 하기 위해서 데이터를 전송함. 

Post 요청일 경우 Body에 데이터를 넣어서 전송함. 

 

 

1-2. Response (응답)

서버 -> 클라이언트 

 

HTTP Response Message는 4가지 부분으로 나눠진다. 

1. Start Line (Status Line)

2. Response Header

3. 공백

4. Body

 

1. Start Line 

Response의 시작 줄은 상태 줄(Status Line)이라고 불리며 3가지 구성으로 이루어져 있다. 

 

1. 프로토콜 버전 

  • 예시 : HTTP/1.1

2. 상태 코드

3. 상태 텍스트 

  • 사람이 HTTP 메시지를 이해할 때 도움이 되는 상태 코드에 대한 짧은 텍스트
  • 순전히 정보 제공 목적 

 

2. Response Header

Response Header에는 상태 줄에 포함되지 않은 서버에 대한 추가 정보를 제공

 

Request Header와 유사하지만 다른 부분들이 있다. 

대표적으로 User-Agent 대신 Server가 사용된다. 

 

 

3. 공백 라인

Hearder와 Body 구분 

 

4. Body 

보통 Body가 필요 없지만 일부 요청은 업데이트를 하기 위해서 데이터를 전송함. 

Post 요청일 경우 Body에 데이터를 넣어서 전송함. 

 

 

 

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

 

HTTP 개요 - HTTP | MDN

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

developer.mozilla.org

 

https://hahahoho5915.tistory.com/62#google_vignette

 

[간단정리] HTTP Request/Response 구조

개요 HTTP Request(요청)/Response(응답) 구조 알아보기 HTTP HyperText Transfer Protocol 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 protocol(통신 규약). 즉 웹상에서 네트워크로 서버끼리 통신을 할때

hahahoho5915.tistory.com

 

 

 

2. 프로그래머스

어렵다...

 

https://school.programmers.co.kr/learn/courses/30/lessons/42627

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형

'취준 > 개념' 카테고리의 다른 글

28일차_HTTP vs WebSocket  (0) 2024.04.16
21일차_개념공부  (0) 2024.04.02
20일차_개념공부  (0) 2024.04.01