인터뷰에 대한 예제 튜토리얼 공유

PHP中文网
풀어 주다: 2017-06-21 11:16:49
원래의
1931명이 탐색했습니다.

질문:

  1. awk, grep, sed 대소문자를 무시하는 데 사용되는 매개변수는 무엇인가요?

  2. 403 상태 코드는 무엇을 의미하나요?

  3. 마지막 줄과 첫 번째 줄로 점프하는 방법 vim?

  4. 정적 페이지와 동적 페이지의 차이점은 무엇인가요?

  5. Linux의 특정 디렉터리에는 100개의 디렉터리가 있습니다.

  6. 브라우저 QQ에 액세스할 수 있습니다. 그런데 웹 페이지에 접근할 수 없습니다. 문제를 해결하는 방법은 무엇입니까?

  7. ftp 프로토콜의 포트 번호는 무엇입니까?

  8. TCP 3방향 핸드셰이크, ack 및 seq를 작성합니까?

그냥 위의 8가지 질문을 기억하세요.

첫 번째 질문은 매우 간단합니다. 매개변수 -i

여야 합니다. 두 번째 질문도 매우 간단합니다. 404는 요청한 리소스가 존재하지 않음을 의미하고, 403은 서버가 요청을 수신했음을 의미합니다. 그러나 서비스 제공을 거부했습니다. 503은 서버가 현재 클라이언트의 요청을 처리할 수 없으며 일정 시간이 지나면 정상으로 돌아올 수 있음을 의미합니다.

세 번째 질문도 매우 간단합니다. 첫 번째 줄로 돌아가려면 소문자 "gg"를 누르고, 마지막 줄로 돌아가려면, "Shift + g"

네 번째 질문은 동적 웹 페이지와 정적 웹 페이지의 차이점입니다. 나는 이 질문을 듣고 매우 기뻤으며 "정적 웹 페이지는 HTML 및 CSS 레이아웃을 사용하고 웹 페이지는 정적입니다. 동적 웹 페이지는 js, jquery 및 ajax를 추가하고 배경과 상호 작용할 수 있으며 또한 캐러셀 이미지가 있습니다." 효과". 이런 답변은 틀렸나봐요!! 아저씨, 이거 정말 가슴 아프네요!!

이 위대한 스승의 블로그를 읽어보세요: 정적 페이지, 동적 페이지, 유사 정적 페이지의 차이점

요약:

정적 페이지: 액세스 속도가 빠르고 데이터베이스에서 데이터를 추출할 필요가 없으며 서버에 부담을 주지 않습니다. 그러나 정적 페이지는 HTML로 저장되므로 서버 공간을 더 많이 차지하며 콘텐츠가 추가될 때마다 새로운 HTML 페이지가 생성됩니다. 전문가가 아니면 유지관리가 번거롭습니다.

동적 페이지: 서버에서 더 적은 공간을 사용합니다. 데이터는 데이터베이스에서 검색됩니다. 페이지의 일부 데이터를 수정해야 하는 경우 데이터베이스를 직접 변경하면 모든 동적 웹 페이지가 자동으로 업데이트됩니다. 그러나 사용자 액세스 속도는 더 느립니다.

동적 페이지에 액세스하는 속도가 느린 이유는 무엇인가요? 이 문제는 동적 페이지의 액세스 메커니즘에서 시작됩니다. 실제로 우리 서버에는 템플릿 렌더링을 위한 템플릿 엔진이 있습니다. 사용자가 방문하면 템플릿 엔진은 동적 페이지를 정적 페이지로 변환하여 모든 사람이 브라우저에서 소스 코드(템플릿 엔진에서 렌더링한 후의 소스 코드)를 볼 수 있도록 합니다. 느린 액세스 속도 외에도 동적 페이지의 데이터가 데이터베이스에서 호출됩니다. 많은 사람들이 방문한다면 데이터베이스에 대한 압박은 매우 클 것입니다. 오늘날 대부분의 동적 프로그램은 캐싱 기술을 사용합니다. 그러나 일반적으로 동적 페이지는 서버에 더 큰 부담을 줍니다. 일반적으로 동적 페이지는 서버에 더 큰 부담을 줍니다. 동시에 동적 페이지가 있는 웹사이트는 일반적으로 동시에 방문하는 사람이 많을수록 서버에 대한 부담이 커집니다.

물론, 다른 사용자가 액세스하는 정적 페이지는 동일하지만 액세스되는 동적 페이지는 다를 수 있습니다.

다섯 번째 질문

在你想查的目录下 执行这个 du -sh * | sort -h 会把占用空间最大的文件列在最后 放在开头的话 du -sh * | sort -rh
로그인 후 복사

6번째 질문

네트워크 설정 및 DNS 서버 문제
이 문제에는 여러 가지 가능성이 있습니다. 자세한 내용은 컴퓨터에서 QQ에 액세스할 수 있지만 웹사이트를 열 수 없는 이유는 무엇입니까? 다음부터 시작하세요. DNS부터 시작하여 발생할 수 있는 문제와 해결 방법에 대해 이야기해 보겠습니다. QQ에 접속이 가능하다는 것은 PC가 외부 네트워크에 접속할 수 있다는 뜻이지만, 웹사이트가 열리지 않으면 cmd에서 www.baidu.com을 ping한 후 Baidu의 IP 주소를 ping하면 DNS 문제가 발생할 수 있습니다. 전자가 핑에 실패했지만 후자는 성공적으로 핑할 수 있는 경우입니다. DNS에 문제가 있다는 의미입니다. 다음은 인터넷에서 찾은 관련 솔루션입니다.

일부 네티즌은 특정 이유로(제어판 - 인터넷 옵션 - 연결 - LAN 설정 - LAN 프록시 서버 사용) 브라우저에서 프록시 서버를 설정하고
    프록시 서버
  1. 는 QQ 네트워킹에 영향을 미치지 않습니다. QQ는 포트 4000을 사용하고 인터넷에 액세스하는 동안 포트 80 또는 8080을 사용하기 때문입니다. 이것이 QQ에 접속할 수 있는데 웹페이지가 열리지 않는 이유를 많은 사람들이 이해하지 못하는 이유입니다. 그리고

    프록시 서버는 일반적으로 매우 안정적이지 않습니다. 때로는 액세스할 수 있고 때로는 액세스할 수 없습니다. 그러한 설정이 있는 경우 프록시를 취소하십시오.

    IE에서 웹을 검색할 수 없는 경우
  2. IP 주소를 사용하여 먼저 액세스할 수 있다면 DNS 문제일 것입니다
  3. ,

    DNS 문제는 An으로 인해 발생할 수 있습니다. 인터넷 연결 시 DNS 획득 오류 또는 DNS 서버 자체에 문제가 있는 경우에는 DNS 서비스를 수동으로 지정할 수 있습니다. (주소는 로컬 ISP에서 제공하는 DNS 서버 주소일 수도 있고, 다른 곳에서는 정상적으로 사용할 수 있는 DNS 서버 주소를 사용하세요.) 네트워크 속성으로 진행합니다("시작 → 제어판" 클릭, 두 번 클릭하여 "네트워크 연결" 열기, "로컬 영역 연결"을 마우스 오른쪽 버튼으로 클릭, "속성" 선택, "인터넷 프로토콜(TCP/IP)" 선택). , "속성"을 클릭하고 "다음 DNS 서버 주소 사용"에서 올바른 네트워크인지 확인하세요. ISP마다 DNS 주소가 다릅니다. 때로는 라우터나 네트워크 카드에 문제가 있어 ISP의 DNS 서비스에 연결할 수 없습니다. 이 경우 라우터를 잠시 껐다가 다시 켜거나 라우터를 재설정할 수 있습니다. 그래도 문제가 해결되지 않으면 네트워크 카드 드라이버를 업데이트하고 네트워크 카드를 변경해 보세요.

  4. 또 다른 가능성이 있습니다. 로컬 DNS 캐시에 문제가 있습니다. 웹사이트 접속 속도를 향상시키기 위해 시스템은 방문하고 IP 주소를 얻은 웹사이트를 로컬 DNS 캐시에 자동으로 저장합니다. 해당 웹사이트에 다시 접속하면 더 이상 DNS 서버를 거치지 않고 검색됩니다. 로컬 DNS 캐시에서 직접 웹사이트의 IP 주소에 액세스합니다. 따라서 로컬 DNS 캐시에 문제가 있으면 웹 사이트에 액세스할 수 없습니다. cmd에서 ipconfig /flushdns를 실행하여 로컬 DNS 캐시를 재구축할 수 있습니다.

  5. 일곱 번째 질문: ftp 프로토콜의 포트 번호는 무엇입니까?

안타깝게도 당시 FTP 프로토콜의 포트 번호를 기억하지 못해서 ssh는 22, telnet은 23이라고 대답했습니다. 그러면 면접관은 20, 21도 능동적이고 수동적이라고 말했습니다. 정말 혼란스러웠습니다...

돌아와서 인터넷에서 정보를 확인해보니 이 블로그가 가장 좋은 블로그인 것 같습니다. FTP 활성 모드와 수동 모드의 차이점

기본 지식 :

FTP는 TCP를 통해서만 연결되며 FTP용 UDP 구성 요소는 없습니다. F

TP가 다른 서비스와 다른 점은 데이터 포트와 명령 포트(또는 제어 포트)라는 두 개의 포트

를 사용한다는 것입니다. 일반적으로

21 포트는 명령 포트이고 20 포트는 데이터 포트

입니다. Active/Passive 모드의 개념이 혼합된 경우 데이터 포트가 20이 아닐 수도 있습니다.

활성 모드 FTP: 먼저 사진을 보세요:

활성 모드에서 FTP 클라이언트는 특수 포트가 아닌 포트(N > 1023)에서 FTP 서버의 명령 포트인 포트 21에 연결됩니다. 그런 다음 클라이언트는 포트 N+1(N+1 >= 1024)에서 수신 대기하고 포트 N+1(N+1 >= 1024)을 통해 FTP 서버에 명령을 보냅니다. 그러면 서버는 사용자가 로컬로 지정한 데이터 포트(예: 포트 20)에 연결됩니다.

서버 측 방화벽을 기반으로 활성 모드 FTP를 지원하려면 다음 상호 작용에 사용되는 포트를 열어야 합니다.

  • FTP 서버 명령(21) 포트는 클라이언트(클라이언트)의 모든 포트를 허용합니다. 초기 연결)

  • FTP 서버 명령(21) 포트 대 클라이언트 포트(>1023)(서버가 클라이언트 명령에 응답)

  • FTP 서버 데이터(20) 포트 대 클라이언트 포트(>1023)(서버 초기화 클라이언트 데이터 포트에 데이터 연결)

  • FTP 서버 데이터(20) 포트는 클라이언트 포트(>1023)를 허용합니다. (클라이언트는 서버의 데이터 포트로 ACK 패킷을 보냅니다.)

1단계에서 클라이언트의 명령 포트 FTP 서버의 명령 포트와 연결을 설정하고 "PORT 1027" 명령을 보냅니다. 그런 다음 2단계에서 FTP 서버는 클라이언트의 명령 포트에 "ACK"를 반환합니다. 3단계에서 FTP 서버는 자신의 데이터 포트(20)에서 클라이언트가 이전에 지정한 데이터 포트(1027)로 연결을 시작하고 마지막으로 4단계에서 클라이언트는 서버에 "ACK"를 반환합니다.

 활성 FTP의 주요 문제는 실제로 클라이언트에 있습니다. FTP 클라이언트는 실제로 서버의 데이터 포트에 대한 연결을 설정하지 않습니다. 단순히 서버에 수신 대기 중인 포트 번호를 알려주고 서버는 클라이언트의 지정된 포트에 다시 연결합니다. 클라이언트 방화벽의 경우 이는 외부 시스템에서 내부 클라이언트로의 연결을 설정하는 것인데, 이는 일반적으로 차단됩니다 .

수동 모드 FTP

클라이언트에 대한 서버 시작 연결 문제를 해결하기 위해 FTP에 연결하는 다른 방법이 개발되었습니다. 이를 수동 모드(PASV)라고 하며 클라이언트가 서버에 수동 모드임을 알릴 때 활성화됩니다.

패시브 모드 FTP에서는 명령 연결과 데이터 연결이 모두 클라이언트에 의해 처리되므로 서버에서 클라이언트의 데이터 포트로의 인바운드 연결이 방화벽에 의해 필터링되는 문제를 해결할 수 있습니다. FTP 연결을 열 때 클라이언트는 두 개의 권한이 없는 임의의 로컬 포트(N>=1024 및 N+1)를 엽니다. 첫 번째 포트는 서버의 포트 21에 연결되어 있지만 활성 FTP와 달리 클라이언트는 PORT 명령을 제출하지 않고 서버가 데이터 포트에 앞뒤로 연결할 수 있도록 허용하는 대신 PASV 명령을 제출합니다. 그 결과 서버는 권한이 없는 임의의 포트 (P >= 1024)를 열고 클라이언트에 PORT P 명령을 보냅니다. 그런 다음 클라이언트는 로컬 포트 ​​N+1에서 서버의 포트 P로 연결을 시작하여 데이터를 전송합니다.

서버 측 방화벽의 경우 수동 FTP를 지원하려면 다음 통신을 허용해야 합니다.

    FTP 서버 명령(21) 포트는 클라이언트의 모든 포트를 허용합니다(클라이언트 초기 연결)
  1. FTP 서버 명령(21) 포트 대 클라이언트 포트(>1023)(서버가 클라이언트 명령에 응답)
  2. FTP 서버 데이터 포트(>1023)는 클라이언트 포트(>1023)를 허용합니다(클라이언트 초기화 데이터 임의의 포트에 연결) 서버에서 지정)
  3. FTP 서버 데이터 포트(>1023) - 클라이언트 포트(>1023)(서버는 ACK 응답 및 데이터를 클라이언트의 데이터 포트로 보냅니다.)

1단계에서 , 클라이언트의 명령 포트는 서버의 명령 포트와 연결을 설정하고 "PASV" 명령을 보냅니다. 그런 다음 2단계

에서 서버는 "PORT 2024" 명령을 반환하여 클라이언트(서버)에게 데이터 연결을 수신하는 데 사용할 포트를 알려줍니다. 3단계에서 클라이언트는 자신의 데이터 포트에서 서버가 지정한 데이터 포트로의 데이터 연결을 초기화합니다. 마지막으로 서버는 4단계에서 클라이언트의 데이터 포트에 "ACK" 응답을 반환합니다.

  수동 FTP는 클라이언트 측의 많은 문제를 해결하지만 서버 측에는 더 많은 문제를 가져오기도 합니다. 가장 큰 문제는 원격 터미널에서 서버의 상위 포트로의 연결을 허용해야 한다는 것입니다. 다행스럽게도 널리 사용되는 WU-FTPD를 포함한 많은 FTP 데몬을 사용하면 관리자가 FTP 서버에서 사용하는 포트 범위 를 지정할 수 있습니다. 자세한 내용은 부록 1을 참조하세요.

두 번째 문제는 패시브 모드를 지원하는 클라이언트도 있고, 패시브 모드를 지원하지 않는 클라이언트도 있다는 점입니다. 이러한 클라이언트를 지원하는 방법과 솔루션을 제공해야 합니다. 예를 들어, Solaris에서 제공하는 FTP 명령줄 도구는 수동 모드를 지원하지 않으며 ncftp와 같은 타사 FTP 클라이언트가 필요합니다.

WWW의 광범위한 인기로 인해 많은 사람들이 웹 브라우저를 FTP 클라이언트로 사용하는 데 익숙해졌습니다. 대부분의 브라우저는 ftp://와 같은 URL에 액세스할 때 수동 모드만 지원합니다. 이것이 좋은지 나쁜지는 서버와 방화벽 구성에 따라 다릅니다.

다음은 Active FTP와 Passive FTP의 장단점을 간략하게 요약한 것입니다.

 Active FTP는 FTP 서버 관리에는 좋지만 클라이언트 관리에는 좋지 않습니다. FTP 서버는 클라이언트의 무작위 포트가 높은 포트에 연결을 시도하고 이 포트는 클라이언트의 방화벽에 의해 차단될 가능성이 높기 때문입니다. 수동 FTP는 FTP 클라이언트 관리에는 적합하지만 서버측 관리에는 적합하지 않습니다. 클라이언트는 서버와 두 개의 연결을 설정해야 하기 때문에 그 중 하나는 임의의 높은 포트에 연결되어 있으며 이 포트는 서버의 방화벽에 의해 차단될 가능성이 높습니다.

다행히도 타협점이 있습니다. FTP 서버 관리자는 서버에서 가장 많은 클라이언트 연결을 확보해야 하므로 수동 FTP를 지원해야 합니다. FTP 서버에 대해 제한된 포트 범위를 지정하여 서버의 높은 포트 노출을 줄일 수 있습니다. 따라서 이 범위에 속하지 않는 모든 포트는 서버 방화벽에 의해 차단됩니다. 이렇게 하면 서버에 대한 모든 위험이 제거되는 것은 아니지만 위험이 크게 줄어듭니다. .

소프트 연결과 하드 연결도 요청되었습니다. 예를 들어 차이점에 대해 물었을 때 저는 당시에 비유했습니다. 소프트 연결은 Windows의 바로 가기 키와 같습니다. 소프트링크를 삭제해도 지정된 파일에는 영향을 미치지 않지만, 지정된 원본 파일이 삭제되면 해당 소프트링크를 데드링크라고 합니다. 윈도우 파일을 삭제해도 바로가기 방식은 폐지되지 않습니다.

하드 링크 파일은 파일의 다른 항목과 동일합니다. 파일은 디스크의 블록에 저장되며 인덱스 노드를 통해 블록 블록을 가리키는 하드 링크가 만들어집니다. 파일에는 그 자체인 하나 이상의 하드 링크가 있습니다. 파일에 대한 모든 하드 링크가 사라진 경우 이는 파일이 삭제되었음을 의미합니다.

그래서 그때 질문을 받았는데, 디렉토리가 공간을 많이 차지해요. 삭제하려면 어떻게 해야 하나요? 먼저 백업을 해야 하는데 디렉터리가 너무 크고 백업도 디스크 공간을 많이 차지합니다. 따라서 백업은 현명하지 않습니다. 올바른 접근 방식은 먼저 이 디렉터리에 대한 추가 하드 링크를 만든 다음 해당 디렉터리를 삭제하는 것입니다. 일정 시간이 지난 후 시스템이 정상화되면 삭제된 콘텐츠는 일부 비즈니스에 영향을 미치지 않습니다. 그래야만 이전에 생성된 하드 링크가 삭제될 수 있으며 실제로 디렉터리가 삭제됩니다.

이번에는 운영 및 유지보수 인턴 면접을 보러 갔습니다. 저는 프로젝트 작업을 위해 2주를 제외하고 한 달 넘게 Linux를 배웠습니다. 리눅스 지식이 많이 활용되지 않아서 물어보면 어떻게 대답해야 할지 모르겠어서 당황스럽네요~_~

해보지 않으면 자신이 잘 못하는 걸 모르는 게 많아요~ 그들, 하하하. 마지막 농담:

위 내용은 인터뷰에 대한 예제 튜토리얼 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿