HTTP - HyperText Transfer Protocol
HTTP는 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다.
HTTP는 문서간의 링크를 통해서 연결 가능한 html을 전송하는 프로토콜로 시작을 했었지만 현재는 거의 대부분의 정보를 HTTP를 통해서 전송하게 되었다.
HTTP를 통해서 전송 가능한 것들
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML(API)
- 서버간의 데이터
HTTP의 기반 프로토콜
- TCP: HTTP/1.1, HTTP/2
- UDP: HTTP/3
HTTP의 특징
- 클라이언트 서버 구조 - 클라이언트와 서버가 독립적인 구조를 가짐
- Request Response 구조
- 클라이언트는 서버에 요청을 보낸 뒤 응답 대기
- 서버가 요청에 대한 결과를 만들어서 응답
- 무상태 프로토콜(Stateless), 연결
- 이전 상태를 저장하지 않음
- 응답 서버 변경이 수월함
- 무한한 서버 증설 가능
- 무상태 프로토콜을 통해 설계하지 못하는 기능들이 존재함
ex) 로그인
- 비 연결성
- 초 단위 이하의 빠른 속도의 응답
- 서버 자원을 매우 효율적으로 사용할 수 있음
- TCP/IP 연결을 새로 맺어야함 - 시간 지연
- HTTP 메세지
- Start Line(요청 메세지, 응답 메세지), Header(전송에 필요한 부가정보), Empty Line(CRLF), Message Body(로 구성됨
- 정보를 담아서 전송하게 됨
- HTTP 상태 코드: 200 = 성공, 400 = 클라이언트 요청 오류, 500 = 서버 오류