본문 바로가기

HTTP

3월 8일 HTTP 메시지

HTTP 메시지

인터넷의 모든것은 HTTP

HTML , TEXT

 

Image , 음성 , 영상 , 파일 , JSON , XML 등

거의 모든 형태의 데이터 전송 가능

서버간에 데이터를 주고 받을때도 대부분 HTTP 사용

 

메시지에는

요청메시지와 응답메시지가 있다

 

HTTP메시지의 구조

1.start line

2.header

3.공백(꼭 있어야함)

4.메시지 영역

 

요청메시지

GET /search?q=hello&h1=ko http/1.1

host : www.google.com  

(공백)

 

응답메시지

HTTP/1.1 200 ok

content-type : text/html; charset = UTF-8

content-length:3423

(공백)

<html>message</html>

 

요청메시지와 응답메시지는 시작라인부터가 다른형태를 하고있다.

startline은 크게 request-line 과 /status-line으로 나뉘어 진다.

 

request-line = method sp(공백) request-target sp http-versionCRLF(엔터)

                        메서드                  요청대상                버전

 

메서드

종류 : get , post , put , delete

서버가 수행해야할 동작 지정

GET : 리소스 조회

POST : 요청내역 정리

 

요청대상

absolute-path[?query] (절대경로[?쿼리]) ex) www.google.com/search~  

절대경로 = "/" 로 시작하는 경로

 

http버전

 

(sp / ows 띄워쓰기)

 

응답메시지

start-line = request-line / status-line

status-line = HTTP-version sp status-code sp - reason-phraseCRLF

                        버전                      상태코드             상태코드해석

 

버전- http 헤더

상태- 요청 성공실패를 코드로 나타냄

이유구분 - 상태코드를 이해할 수 있는 짧은 글

 

HTTP 헤더 (대소문자 구분을하지 않음)

header-field : field-name ";" owsfield - value OWS

 

요청 : host:www.google.com

응답 : content-type:text/html ; charset=UTF-8

          content-length:3423

 

HTTP 전송에 필요한 모든 부가정보를 표시

ex) 메시지 바디의 내용 , 메시지 바디의 크기 , 압축 , 인증 , 요청클라이언트(브라우저 정보) , 서버 애플리케이션 정보 , 캐시관리 정보,

 

표준헤러가 너무 많다.

필요시 임의의 헤더 추가기능

 

HTTP 메시지 바디 (Byte로 표현 가능한 모든 데이터 전송가능)

실제 전송할 데이터

HTML문서 , 이미지 , 영상 , JSON, 등 Byte 데이터

 

단순함 확장기능

HTTP는 단순하다 , 스펙도 읽어볼만 하다.

HTTP메시지도 매우 단순

 

HTTP 정리

1.Http 메시지에 모든것을 전송

2.Http 역사 Http/ 1.1 을 기준으로 학습

3.클라이언트 서버 구조

4.무상태 프로토콜(스테이스 리스)

5.Http 메서드

6.단순함, 확장가능.