(Hyper Text Transfer Protocol)
웹 브라우저와 웹 서버가 HTML
로 작성된 웹 페이지나 파일을 주고받기 위한 프로토콜이다.
HTTP
를 SSL
로 암호화하여 보완성을 확보한 것을 HTTPS
라고 한다.
HTTP
에서는 클라이언트가 서버에 요청 메시지를 보내고 서버가 응답 메시지를 반환한다.
HTTP
는 Stateless로 State
가 저장되지 않아 전에 보낸 요청/응답에 대한 정보를 알 수 없다.
HTTP
에서는 전송 계층은 TCP
, 네트워크 계층은 IP
를 사용하는 것이 일반적이다.
TCP/IP
에서는 IP
주소를 사용하여 통신할 컴퓨터를 결정한다. 그리고 포트번호를 사용하여 그 컴퓨터의 어떤 프로그램과 통신할지 결정한다. HTTP
에서는 기본적으로 80
번 포트를 사용한다.
Start line
Headers
blank line
Body
Start line
Method: GET
, POST
, PUT
, DELETE
등
URL: 경로
HTTP 버전
Headers
(Key: Value)
메시지의 제어 정보
메시지 본문 데이터의 정보(데이터 종류, 문자 코드)
body
보내는 데이터(모든 요청에 body가 들어가지는 않는다.)
Start line(Status line)
HTTP 버전
Status Code(상태 코드): 200
Status Text(상태 설명): OK
Headers
(Key: Value)
메시지의 제어 정보
메시지 본문 데이터의 정보(데이터 종류, 문자 코드)
body
받는 데이터(모든 응답에 body가 들어가지는 않는다.)
1xx: 정보
2xx: 성공
- 200
: OK
, 요청 성공
3xx: 리다이렉트
4xx: 클라이언트 에러
- 400
: Bad Request
, 요청 오류
- 401
: unauthorized
, 인증되지 않음
- 403
: Forbbiden
, 액세스가 허용되지 않음
- 404
: Not Fount
, 리소스를 찾지 못함
- 408
: Request Timeout
, 요청 시간 초과
5xx: 서버 에러
- 500
: Internet Server Error
, 서버 내부 에러
- 503
: Service Unavailable
, 서비스 사용이 불가능한 상태