-
HTTP (3) - HTTP카테고리 없음 2023. 9. 13. 11:48
1. HTTP
HyperText Transfer Protocol
- HTML,TEXT,IMAGE,JSON등 여러 데이터를 전송하기 위한 규약임
(규약이라는 말은 요청과 응답에 특정 제약사항 및 특징이 있다는 것 -> 지켜야할 사항 )
- 기반 전송계층은 TCP와 UDP임
2. HTTP의 특징
2.1 클라이언트 서버 구조
- Request, Response구조
- 클라이언트는 서버에 요청을 보내고, 응답을 대기
- 서버가 요청에 대한 결과를 만들어 응답
2.2 무상태 프로토콜
- 서버는 클라이언트 상태를 보존하지않음
- 장점: 서버 확장성이 높다.
- 단점: 클라이언트가 추가로 데이터를 전송해야함
- 모든 것을 무상태로 설계할 수 있는 경우도 있고 아닌 경우도 있음
- 무상태 (로그인 필요 없는 단순한 서비스 소개)
상태유지(로그인)
- 로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지
- 일반적으로 쿠키와 세션 등을 이용함
- 상태 유지는 최소한만 사용하자
2.3 비 연결성
- HTTP는 기본적으로 연결 유지하지 않음
- 따라서 빠른 속도로 응답함
- 서버 자원을 효율적으로 사용가능
> 비연결성 한계와 극복
*여기 강의
3. HTTP 메시지
3.1 요청메시지
- 시작라인 : method SP request-targetSP HTTP-version CRLF
위 3가지 정보가 공백으로 구분되어 들어감
ex) GET /serch?q=hello&hl=ko HTTP/1.1
> HTTP메서드 : GET,POST,PUT,DELETE 등 서버가 수행할 동작 지정
GET(리소스 조회), POST(요청 내역 처리)
> 요청대상: 절대경로 "/"로 시작하는 경로 (.등을 포함하지 않은 절대경로)
-응답 메시지: Http-version status-code reason-phrase
> HTTP 상태코드 : 요청 성공, 실패를 나타냄
> 이유문구: 사람이 이해할 수 있는 짧은 상태코드 설명
3.2 HTTP 헤더
field-name: field-value (키와 값 형태)
- HTTP 전송에 필요한 모든 부가정보
(매시지 바디크기,압축,인증,캐시 관리 정보 등등)
- 표준헤더는 굉장히 많고, 필요시 임의의 헤더 추가 가능하다
3.3 HTTP 메시지 바디
- 실제 전송할 데이터가 담김
- HTML문서, 이미지 영상, byte로 표현 가능한 모든 데이터 전송 가능