728x90
HTTP(Hypertext Transfer Protocol)의 정의 및 목적
- 웹에서 하이퍼텍스트 문서를 교환하기 위한 통신 규약
- 클라이언트(일반적으로 웹 브라우저)와 서버 간에 요청과 응답을 주고 받음
HTTP 특징 및 동작
- 무상태(Stateless)
- 각각의 요청은 이전 요청과 독립적
- 서버는 클라이언트의 상태를 유지하지 않음
- 요청 메서드(Methods)
- GET(데이터 요청), POST(데이터 제출), PUT(데이터 업데이트), DELETE(데이터 삭제) 등
- 헤더(Headers)
- 요청과 응답에 대한 부가적인 정보를 전달하는데 사용
- 상태 코드(Status Codes)
- 서버의 응답을 나타내는 숫자 코드
- 성공, 리다이렉션, 클라이언트 오류, 서버 오류 등
- URL(Uniform Resource Locator)
- HTTP 요청에서 사용되는 URL은 웹 리소스의 위치를 지정
예: http://www.example.com/index.html
- HTTP 요청에서 사용되는 URL은 웹 리소스의 위치를 지정
HTTP 쿠키 및 세션
- 쿠키(Cookie)
- 클라이언트의 로컬에 저장되는 작은 데이터 조각
- 클라이언트와 서버 간의 상태를 유지하는 데 사용
- 세션(Session)
- 쿠키를 기반으로 클라이언트와 서버 간의 지속적인 상태를 유지하는 기술
- 보안(HTTP Secure - HTTPS)
- HTTPS는 HTTP의 보안 버전
- SSL(보안 소켓 레이어) 또는 TLS(전송 계층 보안) 프로토콜을 사용하여 데이터를 암호화하고 보호
- REST(Representational State Transfer)
- HTTP를 기반으로 한 웹 서비스 아키텍처
- 자원을 URI로 표현
- HTTP 메서드(GET, POST, PUT, DELETE)를 통해 자원을 조작
HTTP 요청(Request) 구조
요청 라인(Request Line)
- 메서드(Method)
- 수행하고자 하는 동작을 나타냄
- 예: GET, POST
- URI(Uniform Resource Identifier):
- 요청 대상의 자원을 식별
- 프로토콜 버전(HTTP Version)
- 사용하는 HTTP 프로토콜 버전
예 : GET /index.html HTTP/1.1
- 사용하는 HTTP 프로토콜 버전
헤더(Headers)
- Host
- 요청하는 호스트(도메인)의 정보
- User-Agent
- 클라이언트의 소프트웨어 정보
- Content-Type
- 요청 본문의 데이터 타입
- 기타 다양한 헤더들이 존재
예: Host: www.example.com User-Agent: Mozilla/5.0 Content-Type: application/json
본문(Body):
- POST 등의 메서드로 데이터를 전송할 때 사용되며 생략 가능
- 요청의 본문에는 데이터가 포함
예: user=abc&password=12345
HTTP 응답(Response) 구조
응답 라인(Status Line):
- 프로토콜 버전(HTTP Version)
- 사용하는 HTTP 프로토콜 버전
- 상태 코드(Status Code)
- 서버의 응답 상태를 나타내는 숫자 코드
- 상태 메시지(Reason Phrase)
- 상태 코드에 대한 짧은 설명
예: HTTP/1.1 200 OK
- 상태 코드에 대한 짧은 설명
헤더(Headers)
- Server
- 서버의 소프트웨어 정보.
- Content-Type
- 응답 본문의 데이터 타입
- 기타 다양한 헤더 존재
예: Server: Apache/2.4.1 Content-Type: text/html
본문(Body)
- 서버에서 클라이언트로 전송되는 데이터가 포함
- HTML 문서, JSON 데이터 등
예: <html> <body> <h1>Hello, World!</h1> </body> </html>
728x90
반응형