1. HTTP
HTTP(Hypertext Transfer Protocol)는 웹상에서 클라이언트와 서버가 데이터를 주고받기 위해 사용하는 통신 규약.
- 전송 가능 데이터:
HTML,TEXT,IMAGE,음성,영상,JSON,XML등 대부분의 데이터 형식 지원.
2. URL 구조

리소스의 위치를 식별하기 위한 표준 형식.
형식:
scheme://host:port/path[?query]예시:https://www.google.com/search?q=hello&hl=ko
| 구성 요소 | 설명 | 비고 |
|---|---|---|
scheme |
사용할 프로토콜 명시 | http 또는 https (보안 추가) |
host |
접속할 서버의 도메인 또는 IP | www.google.com, localhost 등 |
port |
서버 접속 포트 | http: 80 / https: 443 (생략 가능) |
path |
리소스가 있는 경로 | /search |
query |
서버에 전달할 파라미터 | key=value 형태, &로 연결 |
- 참고:
http://localhost:8080과 같이 포트가 명시된 경우, 기본 포트가 아닌 해당 포트 번호를 사용하여 접속.
3. HTTP 메시지 구조
① 시작 라인 (Start Line)
메시지의 맨 첫 줄로, 요청인지 응답인지에 따라 구성이 달라짐.
- 요청 메시지 (Request):
메서드요청 대상HTTP 버전- 예:
GET /search?q=hello&hl=ko HTTP/1.1
- 예:
- 응답 메시지 (Response):
HTTP 버전상태 코드상태 설명- 예:
HTTP/1.1 200 OK
- 예:
상태 코드 요약
2xx: 성공 (Success)4xx: 클라이언트 오류 (Client Error)5xx: 서버 오류 (Server Error)
② HTTP 헤더 (Headers)
전송에 필요한 부가 정보(메타데이터)를 담고 있다. (성격: 값 형식)
| 주요 Content-Type | 설명 |
|---|---|
application/json |
가장 많이 사용. 구조화된 데이터를 교환할 때 사용 |
text/html |
HTML 문서를 전송할 때 사용 |
x-www-form-urlencoded |
폼 데이터를 키-값 쌍으로 인코딩하여 전송 |
multipart/form-data |
파일 업로드 등 바이너리 데이터 전송 시 사용 |
text/plain |
일반 텍스트 데이터 전송 |
③ HTTP 메시지 바디 (Message Body)
- 실제 전송할 데이터 본문이 담기는 영역.
JSON,HTML 문서,이미지,영상등 바이트(byte)로 표현 가능한 모든 데이터를 전송할 수 있다.