>  기사  >  Java  >  2020 새로운 Java 면접 질문 - 네트워크

2020 새로운 Java 면접 질문 - 네트워크

王林
王林앞으로
2020-06-19 17:22:322274검색

2020 새로운 Java 면접 질문 - 네트워크

1. http 응답 코드 301과 302는 무엇을 의미하나요? 차이점은 무엇입니까?

답변: 301과 302는 모두 HTTP 상태 코드이며 둘 다 특정 URL이 전송되었음을 나타냅니다.

차이:

301 리디렉션: 301은 영구 이동을 나타냅니다.

302 리디렉션: 302는 임시 이동을 나타냅니다.

(추천 튜토리얼: java 입문 프로그램)

2. 전달과 리디렉션의 차이점은 무엇인가요?

전달 및 리디렉션은 직접 전달과 간접 전달이라는 두 가지 요청 전달 방법을 나타냅니다.

직접 전달 방식(Forward)은 클라이언트와 브라우저가 서블릿, HTML, JSP 또는 기타 정보 리소스 중 하나의 요청만 발행하고 두 번째 정보 리소스는 요청 개체 요청에 대해 저장된 개체입니다. 정보자원은 공유됩니다.

간접 전달 방법(리디렉션)은 실제로 두 개의 HTTP 요청입니다. 서버가 첫 번째 요청에 응답하면 브라우저가 전달 목적을 달성하기 위해 다른 URL로 요청을 보낼 수 있습니다.

일반적인 예를 들자면:

직접 전달은 다음과 같습니다. "A가 B에게 돈을 빌려달라고 요청하고 B는 돈이 없다고 말하고 B는 C에게 돈을 빌리러 갑니다. 대출이 불가능할 경우 메시지는 다음과 같습니다. pass to A";

간접 전달 다음과 같습니다: "A가 B에게 돈을 빌려달라고 요청했지만 B는 돈이 없다고 해서 A에게 C에게 돈을 빌려달라고 요청했습니다."

(관련 영상 튜토리얼 추천: java 영상 튜토리얼)

3. tcp와 udp의 차이점을 간략하게 설명해주세요.

TCP는 연결 지향적입니다(예: 전화를 걸려면 먼저 전화를 걸어 연결을 설정해야 합니다). UDP는 연결이 없습니다. 즉, 데이터를 보내기 전에 연결을 설정할 필요가 없습니다.

TCP는 안정적인 서비스를 제공합니다. 즉, TCP 연결을 통해 전송된 데이터는 오류가 없고 손실되지 않으며 반복되지 않고 순서대로 도착합니다. UDP는 전달을 위해 최선을 다합니다. 즉, 안정적인 전달이 보장되지 않습니다.

Tcp는 체크섬, 재전송 제어, 시퀀스 번호 식별, 슬라이딩 윈도우 및 확인 응답을 통해 안정적인 전송을 달성합니다. 예를 들어, 패킷 손실 시 재전송 제어를 통해 순서가 잘못된 패킷의 순서를 제어할 수도 있습니다.

UDP는 TCP보다 실시간 성능이 뛰어나고 작업 효율성이 더 높습니다. 고속 전송과 실시간 성능이 필요한 통신이나 방송 통신에 적합합니다.

각 TCP 연결은 지점 간 연결만 가능합니다. UDP는 일대일, 일대다, 다대일 및 다대다 대화형 통신을 지원합니다.

TCP에는 더 많은 시스템 리소스가 필요하고 UDP에는 더 적은 시스템 리소스가 필요합니다.

4. 왜 tcp는 악수를 세 번 해야 하지만 두 번은 안 됩니까? 왜?

신뢰할 수 있는 데이터 전송을 위해서는 TCP 프로토콜로 통신하는 양측 모두 전송된 데이터 패킷 중 상대방이 수신한 데이터 패킷을 식별하는 시퀀스 번호를 유지해야 합니다. 3방향 핸드셰이크 과정은 통신 당사자 모두가 시퀀스 번호의 시작 값을 서로에게 알리고 상대방이 시퀀스 번호의 시작 값을 수신했는지 확인하기 위해 필요한 단계입니다.

두 번의 핸드셰이크만 있는 경우 최대 연결 개시자의 시작 시퀀스 번호만 확인할 수 있으며, 상대방이 선택한 시퀀스 번호는 확인할 수 없습니다.

5. TCP 고정 패킷이 어떻게 생성되는지 알려주세요.

(1) 발신자는 고정 패킷을 생성합니다

TCP 프로토콜을 사용하여 데이터를 전송하는 클라이언트와 서버는 긴 연결 상태를 유지하는 경우가 많습니다(데이터는 연결당 한 번 전송되며 고정 패킷이 없음). 두 당사자의 연결이 끊어지지 않습니다. 데이터는 지속적으로 전송될 수 있지만 전송된 데이터 패킷이 너무 작은 경우 TCP 프로토콜은 기본적으로 이러한 작은 데이터 패킷을 결합하여 전송하도록 Nagle 알고리즘을 활성화합니다(버퍼 데이터 전송은 스태킹 프로세스입니다). 이러한 병합 프로세스는 전송 버퍼에서 수행됩니다. 즉, 데이터가 전송될 때 이미 끈적한 상태에 있다는 의미입니다.

2020 새로운 Java 면접 질문 - 네트워크

(2) 수신자는 끈적한 패킷을 생성합니다.

수신자가 TCP 프로토콜을 사용하여 데이터를 수신하는 과정은 다음과 같습니다. 데이터가 수신자에게 도달하고 네트워크 모델의 최하위에서 전송 계층으로 전달됩니다. , 전송 계층의 TCP 프로토콜은 이를 수신 버퍼에 배치한 다음 애플리케이션 계층에서 이를 적극적으로 가져옵니다(C 언어는 이때 recv, read 및 기타 기능을 사용함). 문제가 발생합니다. 즉, 프로그램에서 호출하는 데이터 읽기 함수는 버퍼를 시간 내에 읽을 수 없습니다. 데이터를 읽을 때 그 안에 있는 데이터를 꺼내고 그 중 일부가 버퍼 끝에 놓입니다. , 끈적끈적한 패킷입니다. (데이터 입력 속도 > 애플리케이션 레이어에서 데이터 가져오는 속도)

2020 새로운 Java 면접 질문 - 네트워크

2020 새로운 Java 면접 질문 - 네트워크

더 많은 면접 질문을 알고 싶다면 java 면접 질문을 방문하세요.

위 내용은 2020 새로운 Java 면접 질문 - 네트워크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제