DOUG 로이드 : 때때로 때 우리가 프로그래밍을하고
우리는 그래서, 그래서 일반적으로 일을 자주, 그리고 많은 사람들
동일하거나 아무것도 모르겠어 똑같이 일,이 이름이있다.
MVC는 정확히 하나의 일이다.
그것은 프로그래밍 패러다임이라고.
그것은 일종의 모범 사례처럼 그 아래로 증류 된
뭔가를 시도하는 사람들이.
이러한 경우에, 구현 페이지 시스템
사용자가 상호 작용하는 것을 더 복잡한 웹 사이트.
그리고 그렇게 일반적으로이 이루어집니다 그것은 표준으로 권장
다른 사람들이 따라하고 싶은 수도, 및 방법의 매우 구체적인 세트있다
하나는이 패러다임을 수행 할 수 있습니다.
>> 따라서, MVC는 패러다임 및 이유는 우리는 거리 추상적 인 세부 사항이다 사용
사용자로부터.
어떤 것들은 사용자 정말 볼 필요가 없습니다.
그들은 단지 갖고 싶어 좋은 사용자 경험,
우리는 그것들을 가질 필요가 없습니다 모든 단일 파일에 액세스하는
아마도, 우리의 웹 서버에 존재합니다.
다만 일부 파일이있을 수 있습니다 사용자 경험을 강화하기 위해 사용되는,
멀리 사람들을 그래서 우리가 할 수있는 추상적 인.
우리는 일종의 그래서 그들을 숨길 수 있습니다 사용자는 그들과 함께 작업 할 수 없습니다
그러나 우리는 우리의 pages--을 pages-- 그들과 거래를하는 방법을 알고
그리고 그들에게 전화 혹은 필요 그들, 또는 그런 일을하려고합니다.
>> 주요 동기 MVC는 데이터 보안이 들어
MVC는 보통에서 오기 때문에 데이터베이스 작업의 컨텍스트.
특히 우리의 사용자를 방지 할
직접 영향을 데​​이터베이스에서.
우리는, 간접적으로 수행 할 우리의 여과를 통해.
또는 제작해야합니다 모든의 확인에 의한 우리는 오류 검사의 조금을하고
안전 교정 우리 전에 데이터베이스로 전송
일이 아마 잘못 갈 수 우리가 조심하지 않으면, 정말 잘못.
>> 그래서 MVC는 모델 뷰 컨트롤러를 의미합니다.
이들 각각의 의미는 무엇입니까?
기본적으로, 모델은 데이터베이스입니다.
그것은 어디 모든 귀하의 사이트에 대한 중요한 데이터
lives-- 사용자 이름, 로그인, 암호.
그리고 당신이 그것을 업데이트를 참조 할 수 있습니다, 그런 거의 모든.
당신은 데이터베이스를 조회 것, 물어 것 데이터베이스에서 정보를 제공합니다.
즉,의 model-- 전부 귀하의 사이트가 살고 데이터.
>> 보기는 가지처럼 사용자 경험.
그것은 그들이 후에 볼 수있는 페이지입니다 그들은 정보를 요청했습니다.
그래서 어쩌면 그들은 제출 자신의 로그인 information--
이들이 컨트롤러에 할 것, 저희는 두 번째에 대한 얘기하자.
그들은 어쩌면 제출 자신의 로그인 정보,
데이터베이스가 쿼리됩니다.
정보가 요구되고 데이터베이스에서 가져온.
그리고 나서 사용자가 기록되면 , 그들은 자신의 홈 페이지를 참조하십시오.
즉 확인,보기입니까?
>> 그리고 컨트롤러는 무엇입니다 사이트의 비즈니스 로직이라고합니다.
비즈니스 로직은 그 용어 중 하나가
wishy-washy-- 같은 종류의 것입니다, 비즈니스 로직은 무엇을 의미 하는가?
기본적으로 당신의 사업 논리는 PHP입니다.
사용자는 필요하지 않습니다 직접 PHP를 보려면,
하지만 PHP는 아마 무슨 일이야 데이터베이스에 대한 요청을합니다.
>> 따라서 사용자의 의지 입력 보기에서 정보,
어떤 컨트롤러를 통합 할 것이다.
마찬가지로, 그들은 형태로 입력합니다.
어떻게 그 형태 프로세스 정보는 컨트롤러이다.
그 사실의 PHP의 모델에 대한 요청을하는.
그리고 모델 제공 뷰에 대한 정보,
사용자에게 제공되는, 다음과 같이 가장 잘 시각화.
>> 그래서 여기에 우리가 있습니다.
여기 왼쪽에 우리를, 그리고 우리의 모델 보기 컨트롤러 패러다임의 배열.
그것은 어떻게 작동합니까?
>> user-- us--은한다 컨트롤러에 요청합니다.
우리는 정보를 제출 HTTP 양식으로 등.
상기 컨트롤러의 그것에 기초 작업이 있는지 확인하는 것입니다
주신 사용자가 아닌 그 무엇 모델을 손상 것이 뭔가.
그리고 컨트롤러는 것 반드시 모든 것이의 확인을합니다.
그것은 매우 신중하게 보는 것입니다.
오류가 있다면, 그것은 일을 중지합니다 그래서 사용자는 모델에 얻을 수 없습니다.
>> 그러나 가정 모두의 확인을 유효한 쿼리이다,
제어기 model-- 쿼리 것 이는 정보를 제공하도록 요청할 것이다.
이 모델은 그를 제공 할 것입니다 뷰의 페이지 정보,
그것은 그것이를 전송합니다 방법, 다음보기
정보를 채 웁니다 모델로부터 요청했다.
>> 따라서, 예를 들어, 우리가 이야기하고있는 경우 당신의 페이스 북 페이지에 로그인에 대한,
예를 들면.
뷰는 데이터 것 그 모델에서 나온 그
친구와 뉴스를 말한다 바로, 그런 식으로 공급 또는 물건?
하지만 당신은 다른 사람의를 볼 것이다.
>> 당신은 너무 getting-- 할 것 당신은 쿼리를 제출,
당신은 model-- 변명에 로그인 나, 당신은 페이지에 로그인합니다.
컨트롤러 사용 로그인 정보
확인하기 위해 모델에 요청을하려면 당신이 있는지 당신은 당신이 말하는 사람.
모델처럼, 예, 확인, 당신은, 당신은 당신이 말하는 그 누구이며
그래서 내가 당신에게 당신의 뉴스 피드를 제공 할 수 있습니다.
난 당신에 대한 원시 데이터를 줄 것이다 보기에 당신의 뉴스 피드,
다음 뷰를 만든다 예쁜, 방법으로 그것을 처리
우리는 표시하는 데 사용하고 있는지 사용자에게 그 정보를 제공합니다.
>> 의 접속에 주목 이 그림에 존재하지 않는.
직접 연결이 없습니다 당신과 모델 사이.
이 버퍼는 항상있다 입력측 컨트롤러
과의 버퍼있다 출력 측에 볼 수 있습니다.
>> 어쩌면 당신은 좋은거야 사람, 그래서 어쩌면 당신에게
에 손상을 할 것 모델,하지만 어쩌면 당신은 아니에요.
아니면 사람이 누가 있어요입니다 악의적 인 사용자 사람은 아마 것
어쩌면, 데이터베이스를 손상 할 데이터베이스에서 모든 것을 삭제
매우 비싼이 될 수있다.
분명히 갖는 사용자 데이터 is-- 사용자 데이터를 갖는 가치가있다.
그리고 우리는이 버퍼를 두지 않았다 그렇다면 사용자와 database-- 사이의 영역
사용자와 model-- 일 우리를 위해 너무 잘 진행되지 않을 수 있습니다.
>> 그리고 그것은에 중요 이 패러다임 곳이
사용자는, 데이터베이스와 상호 작용 물론 이죠,하지만 그들은 우리를 통과해야
그것을 할 수 있습니다.
그리고 기본적으로 MVC와 생각이다.
이는 데이터 보안을 구현하기 위해 노력하고있다.
이 모델을 보호하려고 실수 또는 의도적에서
악의적 인 사용자.
>> 그래서이 때 발생 우리는이 패러다임을 적용?
음, 우리는 데이터를 분리하고 우리의 website--에서 필요
논리에서 model-- 즉, 우리의 웹 사이트의 구현
controller--을 functionality--과 단순한 미학 페이지에서
구성 템플릿 우리 사용자가보기를 experience--.
이것은 무엇을 의미 하는가?
글쎄, 당신이 할 수 있다는 것을 의미합니다 사용자에게 눈에 보이는 전망을 제공합니다.
당신은 멀리 모델을 숨길 수 있습니다.
및 사용자 controllers-- 아마 직접 조작 할 수 있습니다.
그들은 당신의 PHP 코드에 액세스 할 필요가 없습니다.
그들은 단지 형태를 볼 필요가 그들은 어디에서 물건을 입력 할 수 있습니다.
그래서 어쩌면 형태는 뷰, 컨트롤러
양식에 제출 PHP는, 제어기는, 모델에 조회하게
이 모델은 더 많은 정보를 제공합니다 다른보기에 그
당신에게 정보를 표시합니다.
>> 귀하의 프로그램에 액세스 할 수 있습니다 당신의 모든 비즈니스 로직,
하지만 사용자가 직접 할 수 없습니다 비즈니스 로직에 액세스 할 수 있습니다.
그리고 하나 특히, 아마도, 이 보이는 그림
당신은 이제까지받은됩니다 403 금지 오류가 발생했습니다.
혹시 웹에 갔다 페이지와 볼 (403)은 금지?
그것은 404 찾을 수 없음의 같은 종류입니다.
>> 금지 (403)는 사용자가 액세스하려고 의미 당신이 액세스 할 수없는 페이지.
아마도 그 사이트입니다 MVC 분리하여
비즈니스 로직을 멀리 숨기려면 그 순서대로 서버에 존재해야합니다
페이지가 작동하지 않지만하려면 당신이 직접 액세스 할.
그래서 당신은 403 금지 오류가 있습니다.
>> 그리고 그것도 문제가되지 것 당신은 로그인 한 경우.
어떤 사용자는이 점 PHP 파일을 터치 할 수 없습니다.
그들은 단지 만질 수 이 하나,이 one--
그들은 아마도 touch-- 수있는 하나 잠긴 파일과 상호 작용할 수 있습니다
더 간접적으로 사용자보다.
>> 그래서, 우리는 때때로이 권한을 참조하십시오 오류는,이 (403)는 금지.
우리는 어떻게 있도록 권한을 변경합니까 일을하거나 볼 수없는 수 있다는 것을?
이렇게 할 때 일반적으로 사용하는 것입니다 리눅스 명령은 chmod-- C-H-모드를 불렀다.
>> 이를 위해 포맷 예쁜 chmod를 simple--, 권한,
그리고 어떤 파일 당신이 원하는 해당 변경 사항을 적용합니다.
그래서, 어쩌면 당신이 뭔가를 볼 것 이 항아리처럼 600 helpers.php chmod를.
아니면 당신이 항아리는 chmod를 볼 것 디렉토리를 포함 플러스 X.
이 비록 뜻입니까 되었습니까?
그래서, 두 가지 방법이 있어요 권한은 보통 것을
chmod를을 사용하여 적용.
첫 번째는 호출되는 8 진수 방법.
이것은 일반적으로 권한을 적용 세 가지 다른 범주에
동시에 사용자들의.
그래서 chmod를 711 파일은 당신에게 허용 오른쪽은 읽기, 쓰기 및 실행하기
파일, 허용 others-- 구체적으로
그룹 및 전 세계에 - 단지 파일을 실행한다.
즉,이가 번역거야.
이 첫 번째 숫자 당신이 할 수있는 것입니다,
두 번째 숫자는 그룹이 무엇을 할 수 있는지,
세 번째는 세계가 할 수있는 것입니다.
당신의 방문의 누구 페이지, 즉 세계.
>> 이 숫자는 무엇인가 실제로 그래도 번역?
그래서 이것들은 기본적으로 다음과 같이 번역합니다.
권한이있는 경우 제로는, 아무것도 일어나지 않을 수 있습니다.
그것은 하나의 경우를 실행할 수 있습니다 즉 사용자의 허가의 경우 file--.
이 두 가지의 경우 파일을 작성할 수 있습니다 하지만 당신은 다른 작업을 수행 할 수 없습니다.
그것은 세의 경우, 작성하고 실행할 수 있습니다.
등등, 당신은 볼 수 있습니다.
그리고 일곱 당신이 모든 것을 할 수 있다는 것을 의미합니다.
>> 왜 이들은 8 진수라고?
글쎄, 당신은 그것에 대해 생각하면, 여기 noes 및 yeses처럼,
우리는 그들에 대해 생각하는 경우 빨간색과 녹색 상자와 같은,
어쩌면 그게 좀 명확합니다.
그러나 우리는 그 빨간색 상자에 대해 생각하는 경우 사람으로 0과 1의 녹색 상자와 같은,
이러한 사실은 단지 집합입니다 이진수의 오른쪽?
000 0 진수로 변환; 001, 1 소수점; 010 등 소수 2, 및.
그래서 우리는 이러한 진수를 호출 번호가 있기 때문에
8 가지 가능성이 있습니다.
팔이 있습니다 우리가 인 경우에 다른 자리
세 가지에 대해 이야기 information--의 비트
판독 비트, 기입 비트 및 실행 비트.
그래서 지금 당신은 바이너리를 말할 수 있습니다, 진수, 진수, 8 진수.
그래서 당신과 통신하는 방법을 알고 네 가지 수의 컴퓨터
시스템, 그래서 꽤 멋지다.
>> 그래서, 8 진수 외에 허가 방식은 거기
또한 상징적 인 허가 약간 다른 방식
일반적으로 적용하는 것이 가장 사용 또는 전반적으로 권한을 제거합니다.
그래서 더하기 X 파일을 chmod를 권리를 추가 할 수 있습니다
세 가지를 실행합니다 users--의 범주
자신, 그룹, 세계.
즉, 플러스 추가 부분입니다.
실행할 수있는 권리, 즉 X입니다.
그리고 사실은 모두에 적용 사용자의 세 그룹이 될 것입니다.
>> 그래서 더하기 x-- 아마 것입니다이 항아리 chmod를 711과 정확하게 일치하는
당신이 돌아 가면 때문에, 파일 및 8 진수 방식을보고,
사람과 세븐 즈는 우리에게 제공 파일을 실행하는 것이 좋습니다.
그래서 이것은 아마도 동일합니다.
>> 그리고 당신은이를 사용할 수 있습니다 에 대한 참조 설명서 무엇
의 다양한 것들 상징적 chmod를-ING 구조입니다.
녹색 항목은 여기에있을 것입니다 여기서 모든 녹색 색깔 예
두 번째 전이었다.
파란색은 파란색이 될 것이다.
오렌지는 오렌지 것이다.
그래서 당신은 물건을 적용 할 수 있습니다 기, 다른 사람에게, 사용자에게,
또는 모두에게.
당신은 그들에게 읽어 줄 수있는, 쓰기 및 실행 권한,
당신은 추가하거나 제거 할 수 있습니다 또는 정확히 세트를 할당
이 모델을 사용 권한.
>> 우리는 무엇을 확인하려면 어떻게 파일 권한 방식은 무엇입니까?
우리는 변경 전에있어 실제로 알고 아마 좋은
파일 사용 권한은 무엇인지.
이렇게하는 한 가지 방법은 LS를 실행하는 것 하지만 그냥 조금 조정할.
그래서 입력하면 LS는 그만하면 대시 그것은 아마도 그만하면 소문자의
나는 이런 식으로 뭔가를 볼 수 있습니다.
그것은 조금 애매한 보이지만, 우리가 정말 관심있는 부분
저기 왼쪽에있는 물건이다.
즉 실제로 지정 파일 권한 방식.
이 때문에 그리고 당신은 아마 알 수 있습니다 R의,의 W 및 X 년대 산재을 얻었다.
>> 그 첫 번째 three-- 첫번째 무시
두 번째,에 대한 어떤 우리는 다시 두 번합니다.
그 첫 세 이후 first-- 두 번째 때문에,
3 및 제 4 자 그 10 문자열의
당신이 가지고있는 권한이 있습니다.
그래서 분명히 내가 읽을 수 쓰기와 PHP를 실행합니다.
나는 읽기, 쓰기, 수 , PHP 경우 Webdev을 실행
내가 읽고 test.php 쓸 수 있습니다.
>> 내 그룹은이 작업을 수행 할 수 있습니다.
그래서 분명히 PHP로 와 PHP 경우 Webdev 디렉토리,
내 그룹에 쓸 수 있습니다 그들하지만 아무것도.
그리고 세계는 아무것도 할 수 없습니다.
그래서 이러한 파일은 없습니다 공개적으로 액세스 할 수
내가하려하는 경우 그들에 액세스하고 나는하지 않았다
아파치를 실행하는 그들에 액세스 할 수 있도록하기 위해, 그때 나는 403 오류를 얻을 것입니다.
그것은 실패입니다.
나는 파일에 액세스하려고하지만 그것을 할 수있는 권한이 없습니다.
그리고 그 첫 번째 문자는 무엇인가?
글쎄, 당신은 아마 추정 할 수 있습니다 여기 디부의이 디렉토리를 참조하는 것이
그리고 대시를 말한다 "일반 파일을."소위
당신이했습니다 때 어쩌면 당신은 본 적이 RM을 사용하여 파일을 제거하기 위해 노력했다.
당신은 암호 같은 메시지를 본 적이 "일반 파일을 제거"-이 경우,
그것은 test.php 것.
일반 파일은 뭔가 그 디렉토리 아니다.
다른 사람의 몇 가지 있습니다 여기에, 그러나 일반적으로 당신은있어
D의 디렉토리를 볼 것 첫 번째 요소에 대해 아무것도.
하지만 정말 모든이의 IT이다.
당신은 파일을 확인할 수 있습니다 LS 대시 L을 사용 권한,
당신은 chmod를을 사용하여 변경할 수 있습니다.
그리고 물론, these-- 사용 권한 변경
이 MVC 패러다임을 적용하는 당신의 웹 사이트에 데이터를 보호
사용자를 허용하지 모든 액세스하려면
그들이 필요로하지만 물건 페이지의 순서에 액세스 할 수
당신이 원하는 방식으로 작업합니다.
>> 나는 더그 로이드입니다.
이 CS50입니다.