HTTP

모든 데이터를 전송 가능

 

  • HTML,TXT
  • IMAGE, 음성, 영상, 파일
  • JSON, XML
  • 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용

 

 

HTTP 메시지 구조

* 공백은 무조건 필요함

 

 

HTTP 요청 메시지

 

 

HTTP 응답 메시지

 

 

시작 라인

요청 메시지

 

  • start-line = request-line / status-line

start-line 을 request-line 과 status-line 이 있는데

요청 메시지는 request-line 이라고 부릅니다.

 

  • request-line = method SP(공백) request-target SP HTTP-version CRLF (엔터) 

method : GET/POST 등

request-target : 요청하는 대상

 

 

 

HTTP method

  • 종류 : GET,POST,PUT,DELETE...
  • 서버가 수행해야 할 동작 지정

- GET : 리소스를 달라고 요청하고, 리소스 조회

- POST : 리소스를 줄테니까 작업을 요청, 요청 내역 정리

 

 

 

Request-target

  • absolute-path [?query] ( 절대경로 [?쿼리] )
  • 절대경로= "/" 로 시작하는 경로
  • 참고 : * , http://...?x=y 와 같이 다른 유형의 경로 지정 방법도 있음
[ 예제 ]
GET / search?q=hello&hl=ko HTTP/1.1
Host : www.google.com 

 

 

응답 메시지

  • start-line = request-line / status-line

status-line 에 해당합니다.

  • status-line = HTTP-version SP(공백) status-code SP reason-phrase CRLF

 

  • HTTP version
  • HTTP status code : 요청 성공, 실패를 나타냄
200 - 성공
400 - 클라이언트 요청 오류
500 - 서버 내부 오류

[ 예제 ]

 

 

HTTP 헤더

  • header-field = field-name ":" OWS field-value OWS ( OWS : 띄어쓰기를 써도 되고,안해된다. 즉 허용해준다는 뜻 )
  • field-name : 대소문자 구분 없음

* 단,  [Host SP :] 의 형태는 안됩니다. 즉, 공백을 주의깊게 보고 사용해야합니다.

 

 

HTTP 헤더의 용도

  • HTTP 전송에 필요한 모든 부가정보 ( 메시지 바디 내용, 메시지 바디 크기, 압축, 인증, 캐시 관리 정보,,, 등등 )
  • 표준 헤더가 너무 많음
  • 필요시 임의의 헤더 추가 가능

 

 

HTTP 메시지 바디의 용도

  • 실제 전송할 데이터
  • HTML 문서, 이미지, 영상, JSON 등 byte로 표현할 수 있는 모든 데이터 전송 가능

 

 

HTTP 정리

  • HTTP 메시지에 모든 것을 전송
  • HTTP/1.1 을 기준으로 학습
  • 클라이언트 서버 구조
  • 무상태 프로토콜 ( 스테이스리스 )
  • HTTP 메시지
  • 단순함, 확장 가능

'HTTP' 카테고리의 다른 글

RestAPI 활용하기  (0) 2022.08.22
Message States Server  (0) 2022.08.19
HTTP 메서드와 속성  (0) 2022.08.18
HTTP API 설계와 메서드  (0) 2022.08.14
HTTP  (0) 2022.08.03

+ Recent posts