모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 간단하게 정리한 내용 및 추가로 알게 된 내용입니다.
HTTP(HyperText Transfer Protocol)
HTTP 메시지에는 HTML, TEXT, 이미지, 음성, 영상, 파일 , JSON, XML 등 거의 모든 형태의 데이터 전송이 가능하다.
특징
클라이언트 서버 구조
- 클라이언트는 서버에 요청을 보내고, 서버는 요청에 대한 결과를 응답
무상태 프로토콜(Stateless)
- 서버가 클라이언트의 상태를 보존하지 않는다
- 스케일 아웃이 가능하다
- 아무 서버나 호출해도 된다
비 연결성
- 클라이언트랑 요청 응답이 끝나면 연결을 끊는다
- 최소한의 자원 사용
- TCP/IP 연결을 새로 맺어야 하는 단점이 있음
HTTP 메시지 구조
start-line 시작라인
요청 메시지
method SP(공백) request-target SP HTTP-version CRLF(엔터)
예) GET /mycomputer/test.html HTTP/1.1
응답 메시지
HTTP-version SP status-code SP reason-phrase CRLF
예) HTTP/1.1 200 OK
header 헤더
header-field = field-name: OWS field-value OWS (OWS: 띄어쓰기 허용)
전송에 필요한 부가 정보
크기, 압축 등등
예)content-type: text/html; charset=UTF-8
empty line 공백 라인 (<CR><LF>) - 캐리지 리턴(Carriage Return) 다음에 라인 피드(Line Feed)
한칸을 비운다
message body
실제 전송할 데이터를 넣는다
참고
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
'프로그래밍 > HTTP' 카테고리의 다른 글
HTTP 상태 코드 (0) | 2021.08.22 |
---|---|
HTTP 메서드 활용 (0) | 2021.08.17 |
HTTP 메서드 (0) | 2021.08.13 |
URI와 URL, URN (0) | 2021.08.02 |
인터넷 프로토콜 4계층 / IP (인터넷 프로토콜) / TCP (전송 제어 프로토콜) / UDP (사용자 데이터그램 프로토콜) (0) | 2021.07.31 |