출처 : Youtube
HTTP(HTTPS -> SSL/TLS : 보안을 추가한) : 웹표준을 받아오는 프로토콜
<웹표준:클라이언트에서 동작하는 코드>(Frontend)
<서버 컴퓨터에서 동작하는 코드, 웹 서버 페이지를 만드는 기술>(Backend)
DB : 데이터베이스
HTTP(HyperText Transfer Protocol)는 www에서 사용되는 핵심 프로토콜로 문서의 전송을 위해 쓰이며, 오늘날 거의 모든 웹 애플리케이션에서 사용되고 있다. 음성,화상 등 여러 종류의 데이터를 MIME로 정의하여 전송이 가능하다. Request / Response 동작에 기반하여 서비스를 제공한다.
HTTP 1.0 은 "연결 수립, 동작, 연결해제" 의 단순함이 특징이다. 하나의 URL은 하나의 TCP 에 연결한다. 그래서 HTML 문서를 전송 받은 뒤 연결을 끊고 다시 연결하여 데이터를 전송하는 방식이다. 여러 데이터를 보내려면 통신 부하 문제가 발생할 수 있어 비효율적이다.
HTTP 1.1은 한번의 연결로 많은 HTTP 요청을 처리할 수 있다.
Request line : "request type 공백 URI 공백 HTTP version" 로 구성
GET : 클라이언트가 서버에게 문서를 요청
POST : 클라이언트가 서버에게 정보를 전송
:
:
GET 방식 또한 정보를 전송할 수 있다. 하지만 그 정보는 문서를 요청하는데 필요한 정보이고 URI에 포함하여 보낸다.
인터넷 상에서 특정 자원(파일)을 나타내는 유일한 주소를 말한다. scheme에는 7계층 프로토콜이 온다. host 부분에는 보통 도메인 주소를 입력하게 되는데 DNS 서버가 이 도메인 주소를 IP 주소로 바꿔준다. 웹브라우저를 통해 주소를 입력하면 자동으로 포트번호가 80번이나 443번으로 설정되며 보통 생략된다. path 부분은 접근하려고 하는 파일의 경로를 뜻하며 query는 파일에게 전달되는 argument이다.
Status line : "HTTP version 공백 상태코드 공백 상태문구" 로 구성
상태코드와 상태문구는 하나의 쌍을 이룬다.
2xx : 클라이언트의 요청이 성공 (eg. 200/OK:client의 요청이 성공했다는 것을 나타낸다.)
4xx : 클라이언트 잘못으로 인한 에러(eg. 403/Forbidden:클라이언트가 권한이 없는 페이지를 요청했을 때, 404/Not Found:클라이언트가 서버에 없는 페이지를 요청했을 때)
5xx : 서버의 잘못으로 인한 에러(eg. 500/Internal Server Error:Server의 일부가 멈췄거나 설정 오류가 발생, 503/Service Unavailable:최대 Session 수를 초과했을 때)
헤더는 부가적인 정보를 담고있다.
HTTP에 대한 학습이 필요하다고 느낀다면 다시 고고