들어가기 전에
사람과 사람이 전화 통화를 하기 위해서도 몇 가지 규약이 필요합니다.
서로 알아들을 수 있는 말을 사용해야 하며, 한쪽이 말할 때 다른 쪽에서는 들어야 합니다.
또한, 전화 연결이 끊어지면 더 대화를 할 수가 없습니다.
웹 브라우저와 웹 서버 간에도 서로 통신하기 위해서는 규약이 필요합니다.
이때 필요한 규약이 HTTP입니다. 이번 시간엔 HTTP에 대하여 알아보도록 하겠습니다.
학습 목표
- HTTP프로토콜의 작동방식에 대하여 알아봅니다.
- HTTP프로토콜의 요청/응답 데이터 포맷에 대하여 알아봅니다.
핵심 개념
- HTTP
- Request 형식
- Request Method
- Response 형식
- 응답 코드
학습하기
HTTP (Hypertext Transfer Protocol)란?
- 팀 버너스리(Tim Berners-Lee)와 그가 속한 팀은 CERN에서 HTML뿐만 아니라 웹 브라우저 및 웹 브라우저 관련 기술과 HTTP를 발명하였습니다.
- 문서화된 최초의 HTTP버전은 HTTP v0.9(1991년)입니다.
- HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(protocol)입니다.
- HTTP는 계속 발전하여 HTTP/2까지 버전이 등장한 상태입니다.
HTTP 작동방식
- HTTP는 서버/클라이언트 모델을 따릅니다.
- 장점
- 불특정 다수를 대상으로 하는 서비스에는 적합하다.
- 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다. - 단점
- 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.
- 이러한 특징을 무상태(Stateless)라고 말한다.
- 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다.
URL (Uniform Resource Locator)
- 인터넷 상의 자원의 위치
- 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소
- 요청 메서드 : GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 온다.
- 요청 URI : 요청하는 자원의 위치를 명시한다.
- HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전이다.
첫번째 줄의 요청메소드는 서버에게 요청의 종류를 알려주기 위해서 사용됩니다.
각각의 메소드 이름은 다음과 같은 의미를 가집니다.
참고로 최초의 웹 서버는 GET방식만 지원해줬습니다.
- GET : 정보를 요청하기 위해서 사용한다. (SELECT)
- POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
- PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
- DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
- HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.
- OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.
- TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.
생각해보기
- HTTP에 S가 붙은 HTTPS 는 어떤 용도로 사용되는 건가요? HTTP와 무엇이 다른가요?
참고 자료
comment
HTTPS는 HTTP의 보완성을 강화하는 것으로, 클라이언트와 서버가 주고받는 정보를 암호화하는 식으로 정보를 주고받는다.
24.08.05
HTTP에 SSL 을 사용하여 보안을 강화하였다.
24.03.27.
HTTPS는 HTTP보다 보안이 강화된 것으로, 클라이언트와 서버가 데이터를 주고받을 때 데이터가 암호화되어 전송되므로 안전하다.
1,HTTPS는 HTTP에 보안이 강화된 버전이다.암호화 프로토콜을 사용해 암호화 한다는 특징이 있다.
HTTPS는 HTTP의 확장 버전 또는 더 안전한 버전이다 HTTPS 에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정합니다.
http에서 보안요소를 추가한 프로토콜
HTTPS는 데이터를 암호화해 보안성을 확보한 프로토콜
HTTP
서버, 클라가 넷상에서 데이터를 주고받기 위한 프로토콜(약속)
특성
무상태(stateless) 구조를 가지고 있기 때문에 불특정 다수에게 단 한 번 서비스 제공
많은 연결 수를 감당할 수가 있지만 각각의 클라이언트 상태에 대해 알 수 없음.
때문에 이것을 보완할 쿠키 기능이 등장
URL
Uniform Resource Locator
인터넷 상의 자원 위치를 뜻한다.
Uniform: 프로토콜 종류
Resources: 자원의 서버 IP, 도메인, PORT 번호를 나타냄
Locator: 자원의 위치
HTTP 구조
1. 클라이언트 connect 서버
1.2 클라이언트 request to 서버
-> 요청 메시지 폼
크게 요청헤더, 빈줄, 요청바디 세 가지로 나뉜다.
요청헤더
GET/servlet/query?a=10&b=90 HTTP/1.1
GET: 요청 메소드
servlet/query: 요청 URI (요청 자원 위치 명시)
HTTP/1.1: HTTP 버젼
요청바디
GET 특성상 URI에 자원을 다 포함해서 보내기 때문에 바디에 내용이 없음
2. 서버 response to 클라이언트
-> 응답 메시지 폼
크게 요청헤더, 빈줄, 요청바디 세 가지로 나뉜다.
응답헤더:
HTTP/1.1 200 OK
HTTP/1.1 HTTP 버젼
200 응답 코드
OK 응답 메시지
나머지는 각종 웹 서버 정보 표기
http에 보안 security를 더한 것 이 https
https 는 http에 보안 security를 더한것입니다.
https는 보안연결 프로토콜입니다.
https는 http에서의 보안이 더 강화된 버전인 보안 프로토콜. 주로 전자상거래에서 쓰임
https는 http의 요청 및 응답을 암호화 함. 더 안전한 보안용 프로토콜
보안의 추가.
HTTPS 는 HTTP보다 보안이 추가된 방식의 프로토콜이다.
: HTTP보다 보안이 추가된 것. 개인정보와 관련된 사이트라면 HTTPS를 사용해야 한다.
: 브라우저와 웹 서버간의 트래픽이 암호화되고 웹 서버에서 인증서를 제공한다.
22.10.12
HTTPs는 HTTP에서 보안이 추가된 것
HTTPS는 SSL(Secure Socket Layer)을 사용하는 HTTP 의 보안 버전
개념: HTTP+암호화+인증 = HTTPS
HTTPS는 브라우저와 웹 서버 간의 트래픽이 암호화되고 웹 서버에서 인증서를 제공함