강의를 듣다가 http와 관련된 내용이 나왔는데 http와 https의 차이점이 궁금하여 정리하려고 한다.
HyperText Transfer Protocol(HTTP)는 W3상에서 정보를 주고받을 수 있는 프로토콜로 말그대로 통신규약이다.
HTML문서와 같은 리소스들을 가져올 수 있도록 해준다.(이미지, 텍스트, 음성, 영상, 파일 등 모든 데이터)
클라이언트와 서버는 개별적인 메시지 교환에 의해 통신을 한다. 클라이언트가 서버에게 전송하는 메시지를 요청(request), 서버가 클라이언트에게 응답하는 메시지를 응답(respond)이라고 한다.
서버란? 정보를 보관하고 전송해주는 컴퓨터
클라이언트란? 서버로부터 정보를 제공받는 컴퓨터(노트북, 데스크탑, 휴대폰 등)
GET
리소스를 클라이언트로 가져다 달라는 것을 의미POST
데이터가 서버로 들어가야함을 의미origin 형식 : 끝에 '?'와 쿼리 문자열이 붙는 절대 경로로 가장 일반적인 형식
GET, POST, HEAD, OPTIONS
메서드와 함께 사용.
POST / HTTP 1.1
GET /background.png HTTP/1.0
HEAD /test.html?query=alibaba HTTP/1.1
OPTIONS /anypage.html HTTP/1.0
absolute 형식 : 완전한 URL 형식, 프록시에 연결하는 경우 대부분 GET
과 함께 사용
GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
authority 형식 : 도메인 이름 및 옵션 포트(:
)로 이루어진 URL의 authority component
asterisk 형식 : OPTIONS
+ 별표(*
) 하나로 간단하게 서버 전체를 나타냄
OPTIONS * HTTP/1.1
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
:
)이 붙으며, 그 뒤에 오는 값은 헤더에 따라 달라진다.GET
, HEAD
, DELETE
, OPTIONS
와 같이 리소스를 가져오는 요청은 보통 본문이 필요 없음.
200
요청 성공
404
요청받은 리소스를 찾을 수 없음 의미
302
요청한 리소스가 Location 헤더에 주어진 URL에 일시적, 임시적으로 이동됨을 의미. 즉 요청한 리소스가 새로운 URL로 이동했음을 의미
:
)이 오며, 그 뒤에 오는 값은 구조가 헤더에 따라 달라집니다.201
, 204
과 같은 상태 코드를 가진 응답에는 보통 본문이 없다.
201
요청이 성공적으로 처리되었으며, 자원이 생성되었음을 나타내는 성공 상태 응답 코드
204
성공 상태 응답 코드는 요청이 성공했으나 클라이언트가 현재 페이지에서 벗어나지 않아도 된다는 것을 나타냄
chunked
로 설정되어 있으며, 파일은 청크로 나뉘어 인코딩 되어 있다.HTTP는 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는 다는 문제가 있다.
이를 해결하기 위해 나타난게 HTTPS 프로토콜이다.
SSL을 사용하여 보안 문제를 해결했다.
SSL(Secure Socket Layer) : 웹사이트와 브라우저 사이(두 서버 사이)에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술
참고 :
https://namu.wiki/w/HTTP#s-5.1
https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages