JavaRush /Blog Java /Random-ES /Nivel 40. Respuestas a las preguntas de la entrevista sob...
lichMax
Nivel 40
Санкт-Петербург

Nivel 40. Respuestas a las preguntas de la entrevista sobre el tema del nivel.

Publicado en el grupo Random-ES
Nivel 40. Respuestas a las preguntas de la entrevista sobre el tema del nivel - 1En realidad, las siguientes preguntas estaban en este nivel:
  1. ¿Qué es una dirección IP?
  2. ¿Cuál es la diferencia entre host y dominio?
  3. ¿Qué métodos HTTP conoces?
  4. ¿Cuál es la diferencia entre los métodos GET, POST y HEAD?
  5. ¿Qué es el DESCANSO?
  6. ¿Por qué se necesita la clase Calendario en Java?
  7. ¿Cómo convertir una fecha en Java al formato deseado?
  8. ¿Cuál es la diferencia entre URI y URL?
  9. ¿Qué son los enchufes?
  10. ¿Diferencia entre clases de Socket y URL?
Y aquí están mis respuestas:
  1. Una dirección IP es una dirección de red única de un nodo en una red informática construida sobre la pila del protocolo TCP/IP. Internet requiere direcciones globalmente únicas; en el caso de trabajar en una red local, se requiere la unicidad de la dirección dentro de la red. En la versión del protocolo IPv4, la dirección IP tiene una longitud de 4 bytes y en la versión del protocolo IPv6, la dirección IP tiene una longitud de 16 bytes. Normalmente, una dirección IP en la versión del protocolo IPv4 se escribe con cuatro números decimales con valores del 0 al 255, separados por un punto, por ejemplo, 192.168.0.3.

  2. Un dominio es la dirección de un sitio web o una zona específica que tiene su propio nombre, a diferencia de cualquier otro nombre en el sistema de nombres de dominio. Los dominios pueden ser de primer nivel, segundo nivel, tercer nivel, etc. Normalmente, un dominio de primer nivel no está disponible para el registro de usuarios normales (ejemplos de dominios de primer nivel son “.ru”, “.com”, “.net”). Normalmente, los dominios del tercer nivel y siguientes se denominan subdominios.
    Un host es una computadora o servidor específico conectado a una red local o global. El host tiene una dirección única en el entorno del servicio TCP/IP (dirección IP).

  3. OBTENER, PUBLICAR, PONER, BORRAR, OPCIONES, CABEZA, PATCH, RASTREAR, ENLACE, DESENLACE, CONECTAR.

  4. CONSEGUIR CORREO CABEZA
    Cuerpo de solicitud No Comer No
    Cuerpo de respuesta No
    Almacenamiento en caché del resultado de la solicitud No Si, titulares
    Idempotencia No

    El método GET se utiliza para solicitar el contenido de un recurso específico. El método POST se utiliza para transferir datos del usuario a un recurso específico. El método HEAD se utiliza normalmente para recuperar metadatos, comprobar la existencia de un recurso (validación de URL) y ver si ha cambiado desde la última vez que se accedió a él. El método HEAD es similar al método GET, excepto que no hay cuerpo en la respuesta del servidor. El método GET se considera una versión simplificada de POST, porque el método GET no implica una solicitud completa, sólo una URL como tal.

  5. REST es un estilo arquitectónico que muestra cómo interactúan los componentes de aplicaciones distribuidas a través de una red. El término fue acuñado por Roy Fielding en el año 2000. También presentó los requisitos que debe cumplir una aplicación distribuida para cumplir con la arquitectura REST (tales aplicaciones también se denominan RESTful). Estos son los requisitos:

    1. Modelo Cliente-Servidor (significa que la red debe estar formada por un cliente y un servidor; el servidor es quien tiene los recursos, el cliente es quien los solicita))
    2. Отсутствие состояния (означает, что ни клиент, ни servidor не отслеживают состояния друг друга)
    3. Кеширование (клиенты и промежуточные узлы могут кешировать результаты pedidoов; сооответственно, ответы servidorа должны иметь явное o неявное обоsignificado, что они кешируемые o некешируемые)
    4. Единообразие интерфейса (означает, что между клиентами и servidorами существует общий язык взаимодействия, который позволяет им быть заменяемыми o изменяемыми, без нарушения integridad системы):
      • Определение ресурса (означает, что каждый ресурс должны быть обозначен постоянным идентефикатором)
      • Управление ресурсами через представление (означает, что клиент хранит ресурс в виде его представления, и при желании изменения ресурса он отправляет servidorу информацию о том, в Cómoом виде он хотел бы видеть этот ресурс; servidor же рассматривает этот Cómo pedido Cómo предложение, и сам решает, что делать ему с хранимым ресурсом)
      • Самодостаточные mensajes (каждое сообщение содержит достаточно информации, чтобы понять, Cómo его обрабатывать)
      • Гипермедиа (означает, что клиенты изменяют состояние системы только через действия, которые динамически определены в гипермедиа на servidor)
      • Система слоёв (означает, что в системе может быть больше двух слоёв (клиент и servidor), и при этом каждый такой слой знает только о своих соседних слоях, и не знает об остальных слоях, и взаимодействует только с соседними слоями)
      • Код по требованию (означает, что функциональность клиента может быть расширения за счёт загрузки códigoа с servidorа в виде апплетов o сценариев)

      Удовлетворение этим требованиям позволяет добиться следующего:

      • Надёжность
      • Производительность
      • Масштабируемость
      • Прозрачность взаимодействия
      • Простота интерфейсов
      • Портативность компонентов
      • Лёгкость внесения изменений
      • Способность эволюционировать, приспосабливаясь к новым требованиям
  6. Он нужен для более удобной работы с датой и временем. Он позволяет работать с датой в рамках календаря, то есть позволяет прибавлять и отнимать дни от Cómoой-то конкретной даты, причём будут учитывать и високосные года. Кроме того, он позволяет представить время миллисекундах в удобном виде - год, месяц, день, часы, minutosы, секунды. Также есть много методов для установки и получения разных параметров даты и времени, например: день недели, день месяца, день в году, номер недели в месяце, номер недели в году.
  7. Для этого существует удобный класс SimpleDateFormat. Экземпляру этого класс можно передать шаблон представления даты, и тогда он в таком виде будет возвращать fecha (в формате строки String), либо считывать fecha (из строки String). Выглядит это всё следующим образом:

    Date date = new Date(); // получаем текущую fecha
    SimpleDateFormat formatter = new SimpleDateFormat("d-MM-yy HH:mm:ss"); //создаём экземпляр класса SimpleDateFormat
             								//и передаём ему шаблон представления даты и времени
    String dateAsString = formatter.format(date); //преобразуем fecha в строку заданного формата
    
    Date dateAfterConversion = formatter.parse(dateAsString); //преобразуем строку обратно в fecha
  8. URI расшифровывается Cómo Uniform Resource Identifier и переводится Cómo "унифицированный идентификатор ресурса". URI — это последовательность символов, идентифицирующая абстрактный o физический ресурс. URL расшифровывается Cómo Uniform Resource Locator. То есть это некий унифицированный указатель на ресурс, однозначно определяющий его месторасположение. URL служит стандартизированным способом записи DIRECCIÓNа ресурса в сети Интернет.
    Их отличия в том, что URI — это некоторый идентификатор ресурса, который позволяет этот ресурс Cómo-то идентифицировать, а URL — это указатель на ресурс, он даёт информацию о том, где находится ресурс. Таким образом URL — это URI, который помимо идентификации ресурса, даёт информацию о его местонахождении.

  9. Сокеты — это связка IP-DIRECCIÓN + порт, позволяющая из внешней сети однозначно идентифицировать программу на компьютере o servidorе. В Java для работы с сокетами есть два класса Socket и ServerSocket. Экземпляры первого класса играют роль клиента, экземпляры второго — роль servidorа. Клиент может отправлять и принимать mensajes через сокет. Сервер же постоянно отслеживает pedidoы пользователей и отвечает на них.
    Для того, чтобы отправить данные через сокет, в классе Socket существует класс getOutnputStream(), возвращающий исходящий поток, с которым уже можно работать Cómo обычно. Для приёма информацию нужно воспользоваться методом getInputStream(), который возвращает входящий поток. Дальше с этим потоком можно работать Cómo с обычно потом ввода. Также стоит отметить, что при создании клиентского сокета (экземпляра класса Socket) в конструктор нужно передать ip-DIRECCIÓN servidorа и порт, на котором он работает принимающая программа-servidor.
    При создании servidorного сокета (экземпляра класса ServerSocket) нужно указывать только порт, через который будет работать программа. После этого вызывается метод accept(). Этот метод ожидание подключение клиента, а после этого возвращает экземпляр класса Socket, необходимый для взаимодействия с этим клиентом. Дальше работать идёт с экземпляром класса Socket, Cómo в первом случае (в случае клиента).

  10. Главное отличие в том, что класс URL предназначен для работы с URL-строкой (парсинг URL-строки), а Socket используется для соединения с удалённым servidorом и отправки информации на servidor и/o приёма информации от servidorа (хотя, используя класс URL, можно получить доступ к ресурсу, на который указывает сам URL; но делается это не напрямую, а через un objeto класса URLConnection). Также, если смотреть в общем, то Socket используется для связи с servidorом (другой программой), а URL — для доступа к ресурсу (например, к файлу). Кроме того, URL и URLConnection ориентированы в основном на работу с HTTP, тогда Cómo Socket может работать с любыми протоколами.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION