IP : Internet Protocol Address, 호스트가 자신들을 구분하기 위해 가지는 특수한 번호
IP주소는 4개의 숫자와 점으로 구성되어 있으며, 각각의 숫자는 0~255 사이의 정수를 가짐.
도메인(Domain) : 편리를 위해 IP주소 보다 의미가 있는 문자열을 사용함.
웹 브라우저가 도메인과 연결되어 있는 IP 주소를 찾아서 이동해 주기 때문에 문자열로 표현된 인터넷 주소로 웹사이트에 접속 할 수 있음. (DNS, 도메인 네임 시스템)
클라이언트(Client) : 데이터를 요청하는 쪽의 호스트
서버(Server) : 호스트가 데이터를 요청 했을 때 이것에 응답, 서비스를 제공하는 쪽의 호스트
정적 웹 사이트와 동적 웹 사이트의 차이점은 무엇일까요?
3-1. Django는 무엇을 위한 도구인가요?
정적 웹 사이트 : 디바이스, 상황에 관계 없이 항상 일정한 화면을 제공
브라우저는 웹 서버와 통신해서 이미 저장되어 있던 HTML, CSS, JS 파일을 다운 받음.
웹 서버는 저장소 역할을 하고 따로 데이터베이스가 필요하거나 복잡한 로직이 필요하지 않음.
동적 웹 사이트 : 클라이언트의 요청에 따라 다양한 화면을 제공
웹 서버는 단순히 HTML, CSS, JS 파일을 제공하는게 아니라 웹 어플리케이션 서버(WAS)와 직접 통신을 함.
WAS는 복잡한 로직, 데이터 베이스와 통신등을 책임지는데 웹 서버는 WAS와 통신해서 얻은 결과 값을 바탕으로 가공 작업을 거쳐 만들어진 동적인 웹 파일을 클라이언트에게 전달함.
Django : 파이썬으로 만들어진 웹 애플리케이션 프레임워크(web application framework).
웹 애플리케이션 프레임 워크는 웹 개발의 공통적인 프로세스들의 상당한 부분을 자동화하고 표준화하면서도, 앱 템플릿을 위한 라이브러리와 프레임워크를 제공함.
Django(장고)는 사이트 맵, 콘텐츠 관리, 사용자 인증 등을 자동으로 처리해주는 등 다양한 기능을 갖춤.
HTTP : 하이퍼텍스트 전송 프로토콜, HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜.
클라이언트가 요청을 하기 위해 연결을 연 다음 응답을 받을 때 까지 대기하는 전통적인 클라이언트-서버 모델을 따른다.
클라이언트와 서버들은 개별적인 메시지 교환에 의해 통신.
보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests), 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 함.
요청 메시지 구성 :
Method : HTTP 메서드, 보통 클라이언트가 수행하고자 하는 동작을 정의한 GET, POST 같은 동사나 OPTIONS나 HEAD와 같은 명사.
Path : 가져오려는 리소스의 경로.
Version of the protocol : HTTP 프로토콜의 버전.
Headers : 서버에 대한 추가 정보를 전달하는 선택적 헤더들. POST와 같은 몇 가지 메서드를 위한, 전송된 리소스를 포함하는 응답의 본문과 유사한 본문.
ex)
GET / HTTP/1.1 # (Method, Path, Version)
# Headers
Host: developer.mozilla.org
Accept-Language: fr
응답 메시지 구성 :
Version of the protocol : HTTP 프로토콜의 버전.
Status code : 요청의 성공 여부와 그 이유를 나타내는 상태 코드
Status message : 아무런 영향력이 없는, 상태 코드의 짧은 설명
Headers : 요청 헤더와 비슷한 HTTP 헤더들, 선택 사항으로 가져온 리소스가 포함되는 본문
ex)
HTTP/1.1 200 OK # (Version, Status code, message)
# Headers
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
ETag: "51142bc1-7449-479b075b2891b"
Accept-Ranges: bytes
Content-Length: 29769
Content-Type: text/html
프레임워크는 무엇일까요?
'FRAME 프레임(틀, 규칙or법칙)'+'WORK 워크(일, 소프트웨어의 목적)'