HTTP 메시지
HTTP는 연결을 유지하지 않는 Connectless, Stateless 프로토콜이다.
따라서 HTTP는 정해진 규격의 메시지에 모든 정보를 담아서 통신한다.
클라이언트는 HTTP 메시지에 정보를 담아 서버에 요청하고,
서버는 클라이언트로부터 받은 HTTP 메시지를 확인하여 클라이언트가 요청한 정보를
새로운 HTTP 메시지에 정보를 담아 클라이언트로 응답한다.
즉, HTTP 메시지에 모든 것을 전달한다.
- HTML, TEXT
- image, 음성, 영상, 파일
- JSON, XML
- 거의 모든 형태의 데이터 전송 가능
- 서버 간에 데이터를 주고받을 때도 대부분 HTTP를 사용한다.
!!! 공백은 필수로 포함되어야 한다.
Request : 요청 메시지
시작 라인(HTTP Request start-line)
(HTTP 메서드) /(경로) (HTTP 버전)
1. HTTP 메서드 (GET)
2. 요청 대상(/search? q=hello&source=hp)
3. HTTP 버전 (HTTP/1.1)
HTTP 헤더 (HTTP Request Header)
(field-name): (field-value)
- (field-value)에는 앞뒤로 띄어쓰기 허용
- (field-name)은 대소문자 구분 x
Host: www.google.com (':' 앞에는 띄어쓰기 x)
Connection: keep-alive
메시지 바디(HTTP Request Message-body)
- 필요시 HTTP 요청 시에도 메시지 바디에 데이터를 넣을 수도 있다.
Response : 응답 메시지
시작 라인 (HTTP Response start-line)
1. HTTP 버전 (HTTP/1.1)
2. HTTP 상태 코드(Status Code) - (200)
3. 사람이 이해할 수 있는 언어로 짧은 설명(Status Message) - (OK)
2023.07.18 - [Spring_Web/Web] - [Web/HTTP] HTTP 상태 코드(Status Code)
HTTP 헤더 (HTTP Response Header)
- HTTP 전송에 필요한 모든 부가 정보
- 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트 정보 등...
- 표준 헤더는 매우 많음
- 필요시 임의의 헤더 추가 가능
메시지 바디 (HTTP Response message body
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상, JSON 등
(실제 HTTP 요청, 응답 메시지 알아보기)
웹에서 개발자 모드 (f12)를 켜면 네트워크의 흐름을 볼 수 있다.
만약 구글에서 "hello"를 검색하면 아래와 같이 수많은 데이터들이 오고가는 것을 볼 수 있다.
맨 윗줄의 문서 이름을 클릭하면 HTTP 요청, 응답 메시지를 확인할 수 있다.
응답 HTML 파일도 확인할 수 있다.
반응형
'컴퓨터 공학 > Web & Network' 카테고리의 다른 글
[Web/HTTP] Web의 3요소와 HTTP 프로토콜, 특징 (0) | 2023.07.19 |
---|---|
[Web] 쿠키(Cookie)와 세션(Session) (0) | 2023.07.18 |
[Web/HTTP] HTTP 상태 코드(Status Code) (0) | 2023.07.18 |
[Web/HTTP] HTTP Methods (0) | 2023.07.18 |
[Web] URI, URL / URI 설계 원칙 RFC-3986 (0) | 2023.07.07 |