HTTPS --> HTTP + SECURE (보안적용)
HTTP(Hyper TEXT Transfer Protocol)
웹 브라우저 |
SOCKET 라이브러리 |
TCP/UDP |
IP |
네트워크 인터페이스 (랜카드/드라이버 등) |
http /1.1 /가장많이 사용 -1997년
기반 프로토콜
TCP ; http /1.1 ,http /1.2
UDP : http/1.3
http특징
- 클라이언트 서버구조
- 무상태 프로토콜 / 비연결성
- http 메시지
- 단순, 확장 가능
1.클라이언트 서버구조
2. 무상태 프로토콜
StateFul(상태유지) /cookie ,session등 | 요청상태 유지 / 중간에 요청바뀔시 오류 |
StateLess(무상태) / queryParameter | 무상태 / 중간에 요청 바뀌어도 오류 X / 무한 증원 가능 |
StateFul
StateFul --> 서버1이 다운되어 서버 2로 갈 경우 오류
StateLess --> 서버1이 다운되어 서버 2로 갈 경우 오류 없음
최대 StateLess + 최소 StateFul(session+cookie) 로 구성
2.1 비연결성
클라이언트에서 서버로 연결 후 연결을 끊어 서버 부하 낮음
단점
- TCP/IP 연결을 새로 해야함 (3Wayhandshake)
- Http 사이트 요청시 수많은 자료 다시 다운 --> 지금은 http 지속 연결 사용
3.HTTP 메시지
시작 |
Header(모든 부가 정보) |
공백 |
Body(데이터) |
요청
method (get,post , put ,delete) |
절대경로 + query |
버전 / http1.1 |
응답
버젼 / http/1.1 |
100,200,300,400,500 |
100 -> 요청 수신 /처리중
200 -> 요청 정상 처리
300-> 요청을 완료하기 위해 클라이언트가 추가 동작 필요 (요청완료/추가행동 필요)
400-> 요청 오류 (클라이언트 오류 ) /잘못된 문법
500-> 내부 오류(서버 오류)
메시지 구조
RFC2616 (과거) 구조 general Header /Request Header / response Header /Entity Header (데이터 해석을 위한 정보)
+body (Entity data)
RFC 7230-7235
- Body를 통해 표현 데이터 전달
- 표현 header로 표현 데이터 해석
- 메시지 부분 payload
표현
content-type | 표현 데이터 형식 |
content-Encoding | 표현 데이터 압축 |
content-Language | 언어 |
content-Langth | 길이(Byte) |
협상 : 클라이언트가 선화는 표현 요청 /구체적 일수록 우선순위가 높다
Accept | 선호하는 미디어 타입 전달 |
Accept-charSet | 문자 인코딩 |
Accept-Encodin | 압축 인코딩 |
Accept-Language | 자연 언어 |
전송 방식
- 단순전송 : content-Langth를 알 경우 전체 전송후 전체 수용
- 압축 전송 : content-Encoding : 압축
- 분할 전송 : transfer-Encoding => content-Length 전송 X
- 범위 전송 : content-Range
그 외
- referer : 이전 사이트 "유입경로"
- user-agent : 웹 브라우져 정보 (클라이언트 ,애플리케이션 정보) / 브라우저의 정보 파악 가능
- server-origin : 서버정보
- Date -날짜 ,시간
- host -(필수헤더 )도메인
- Location -1xx,2xx,3xx,4xx,5xx 등
- retry-after : 503 서비스 불능 시간
- 인증 헤더 : authorization : 클라이언트 인증 정보 / www-authenticate: 리소스접근 인증방법정의
'HTTP의 이해' 카테고리의 다른 글
Http Api 설계 (0) | 2023.03.12 |
---|---|
Http 속성 (0) | 2023.03.12 |
Http 메소드 (0) | 2023.03.12 |
URI/URL/URN (0) | 2023.03.12 |
IP /TCP/UDP (0) | 2023.03.12 |
댓글