[네트워크] HTTPS 정의, HTTPS 요청/응답 방식

2022. 12. 27. 12:37· CS
목차
  1. HTTP 란
  2. 특징
  3. HTTP 요청 순서
  4. Header 종류

 

HTTP 란

HyperTest Transfer Protocol로 문서간에 링크를 전송하는 프로토콜.

HTML, 텍스트, 이미지, 음성, 영상, JSON 등 모든 형태의 데이터가 전송이 가능.

서버간의 데이터 전송에도 거의다 이거 씀.

HTTP/1.1, HTTP/2 는 TCP를 기반으로 하고 있다. 

 

하이퍼텍스트란

참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있게 하는 텍스트

 

HTTPS

HyperTest Transfer Protocol SSL(Secure Socket Layer)

HTTPS 는 HTTP에서 보안이 강화된 친구. 

HTTPS간에 전송되는 데이터는 추가적인 보안 계층이 존재. (TLS, 전송 보안 계층 프로토콜)

 

 

특징

 

클라이언트 서버구조

- request, response 구조

- 클라이언트가 서버에 요청을 보내고, 응답을 대기함.

- 서버가 요청에 대한 결과를 만들어 응답.

- 비즈니스 로직과 데이터는 모두 서버가 처리하고 UI등은 클라이언트가 처리.

- 클라이언트와 서버의 분리를 통해 클라이언트와 서버가 각각의 성장이 가능.

 

무상태(Stateless) 프로토콜

- 서버가 [클라이언트의 상태를 보존하기 않았기 때문에] 클라이언트는 이어지는 요청이라도 반복해서 보내야함. 

ex. 햄버거 주문 -> 햄버거 세트 주문 -> 햄버거세트 2개 주문 -> 햄버거세트 2개, 신용카드로 결제

ex. 복습형 공부방식. 1단원 공부 -> 1단원과 2단원 공부 -> 1단원과 2단원과 3단원 공부....

- 장점 : 데이터를 저장하지 않아도 되어 쉽게 바꿀수 있기에 서버의 확장성이 높다 

- 단점 : 데이터를 너무 많이 보내야 한다. 

 

만약에 상태유지(stateful) 프로토콜이라면?

- 간소하지만 진행중 오류가 발생시 처음부터 다시 요청해야함.

- 중간에 서버가 변경된다면 다른 서버에게 상태정보를 전달해야함. 

 

비연결성

- 기본적으로 [연결을 유지하지 않는 모델]

- 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 적다. (사람들이 연속적으로 검색버튼을 누르지 않아서)

- 서버 지원을 효율적으로 사용가능.

- 요청마다 연결을 맺어야 해서 3way handshake 시간이 추가된다. 

- 현재는 [HTTPS 지속연결] 로 문제를 해결.

 

 

HTTP 요청 순서

 

서버가 클라이언트에게 요청하는 것

- request line (ex. Get /content/page1.html)

- header (ex. -Accept-Language:EN)

- empty line

- message body(optional)

 

클라이언트가 서버에게 응답하는 것

- HTTP status code (ex. HTTP/1.1 301 Moved Permanently) 

- Header (ex. Content-type: html)

- empty line.

- message body(optional)

 

모든 문장은 \r (맨 앞 이동), \n 으로 끝나야 함.

 

 

 

Header 종류

 

HTTP/1.x

  • header의 시작은 첫번째줄인 요청 혹은 응답줄 다음에 전송.
  • header의 끝은 빈 한줄로 인식 즉 헤더의 종료는 \n\n으로 표기됨.
  • 키 : 값 쌍으로 전송.
  • 모든 줄은 \r, \n으로 종료됨.

HTTP/2, HTTP/3

  •  이진 프로토콜 사용. 
    • 이진 프로토콜이란 아스키 엔코딩처럼 사람이 읽을 수 있게 해주는 문자 기반 프로토콜이 아니라 모든 값을 byte 로 표시한다. 
  • 헤더는 HPACK 혹은 QPACK을 사용하며 압축을 진행.
  • 여기서 HTTP/1에서 사용되는 요청은 : 로 시작하는 준 헤더 파일로 바뀌어서 사용됨. 

'CS' 카테고리의 다른 글

[CS] 해시, 대칭키, 비대칭키(공개키) 암호화  (0) 2023.01.18
[네트워크] HTTP Header 구조  (3) 2022.12.27
[CS] 아스키코드와 유니코드  (0) 2022.12.22
[네트워크] 허브/스위치/라우터/공유기  (0) 2022.12.21
[CS] OSI 7계층, TCP 4계층 차이점  (0) 2022.12.21
  1. HTTP 란
  2. 특징
  3. HTTP 요청 순서
  4. Header 종류
'CS' 카테고리의 다른 글
  • [CS] 해시, 대칭키, 비대칭키(공개키) 암호화
  • [네트워크] HTTP Header 구조
  • [CS] 아스키코드와 유니코드
  • [네트워크] 허브/스위치/라우터/공유기
yeonlee
yeonlee
yeonlee
이연
yeonlee
전체
오늘
어제
  • 분류 전체보기 (85)
    • 개발 (6)
      • Android Studio (15)
      • Java (15)
      • C (17)
      • HTML,PHP,JS (0)
    • 프로젝트 (1)
    • 일상 (2)
    • CS (27)
      • DB (9)
    • 정보보안기사 (0)
      • 시스템보안 (0)
      • 네트워크보안 (0)
      • 어플리케이션보안 (0)
      • 정보보안일반 (0)
      • 정보보안관리 및 법규 (0)
    • 코딩테스트 (0)
    • 잡동사니 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • https://hazel-developer.tistory.com/145
  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages
  • http://blog.skby.net/cpu-%EB%B9%84%EC%84%A0%EC%A0%90-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81-%EA%B8%B0%EB%B2%95/
  • https://velog.io/@tktnskan/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%93%B0%EB%A0%88%EB%93%9C
  • 자기계발 대학생 명상캠프
  • ㅇㄹ

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
yeonlee
[네트워크] HTTPS 정의, HTTPS 요청/응답 방식
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.