카테고리 없음

HTTP 구조

주니어네키 2023. 7. 13. 12:50

HTTP

  • 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조" 라고 보면 된다.
  • HTML 문서,이미지,동영상을 보내기 위한 프로토콜
    요청,응답 동작에 기반하여 서비스 제공

 

HTTP 버전

  • HTTP 1.0 버전에서는 매번 request/response가 끝나면 연결이 끊기므로 필요할 때마다 다시 연결해야하는 단점이 있어 속도가 현저히 느리다. 이를 보완하기 위해 나온것이 HTTP 1.1버전이다
  • HTTP 1.1버전에서는 요청이 끝날때까지 연결종료하지않음

 

HTTP REQUEST 구조

공백을 제외하고 세 부분으로 나뉜다

  1. Request Line 
  2. Header
  3. Body

1. Request Line

Request Line 또한 공백제외 세가지 부분으로 나뉨

  • 요청타입 (get,post,,,)
  • URI : http request가 전송되는 목표주소
  • http버전 (1.0버전인지 1.1버전인지)
URI란
인터넷 상에서 특정 자원을 나타내는 유일한 주소이다
예를 들어 URI가 https://www.youtube.com/watch?v=xxxxxxxx 라면
https 프로토콜을 사용하고 도메인이름은 youtube.com 유튜브 서버에 watch라는 [폴더] 있을것이다
?이후는 내가 요청한 xxxxxxxx라는 [파일]이 된다

2. Header

해당 request에 대한 추가정보를 담고 있는 부분, 키-값 형태로 되어있음 http 요청 헤더의 종류는 수백가지가 넘음

  • Host : 요청하려는 서버 호스트 이름과 포트번호
  • Accept: 클라이언트가 처리할 수 있는 미디어 타입 목록을 서버에 알립니다.
  • User-agent : 클라이언트 프로그램 정보. 이 정보를 통해 서버는 브라우저에 맞는 최적의 데이터를 보내줄 수 있다.
  • Referer : 바로 직전에 머물렀던 웹 링크 주소 

3. Body

http request가 전송하는 데이터를 담고있는 부분

전송하는 데이터가 없다면 body부분은 비어있다

post 요청일 경우 html 폼 데이터 포함되어있음

 

 

 

HTTP RESPONSE 구조

공백을 제외하고 세 부분으로 나뉜다,http request와 비슷하다

  1. Status Line
  2. Header
  3. Body

1. Status Line

Status Line 또한 공백제외 세가지 부분으로 나뉨

  • http 버전 (1.0버전인지 1.1버전인지)
  • 상태코드 (200이나 404같은 숫자)
  • 상태문구 

2. Header

http request header와 비슷하지만 req에서만 사용되는 값이 있고 res에서만 사용되는 값이 존재한다

  • Server : 웹 서버의 종류
  • Date: 응답이 생성된 날짜와 시간을 나타냅니다.
  • Content-Type: 응답 본문의 미디어 타입을 클라이언트에 알려줍니다.

3. Body

http request와 동일