JavaRush /Blog Java /Random-FR /Niveau 40. Réponses aux questions d'entretien sur le suje...
lichMax
Niveau 40
Санкт-Петербург

Niveau 40. Réponses aux questions d'entretien sur le sujet du niveau

Publié dans le groupe Random-FR
Niveau 40. Réponses aux questions d'entretien sur le thème du niveau - 1En fait, les questions suivantes se situaient à ce niveau :
  1. Qu'est-ce qu'une adresse IP ?
  2. Quelle est la différence entre hébergeur et domaine ?
  3. Quelles méthodes HTTP connaissez-vous ?
  4. Quelle est la différence entre les méthodes GET, POST et HEAD ?
  5. Qu’est-ce que REST ?
  6. Pourquoi la classe Calendar est-elle nécessaire en Java ?
  7. Comment convertir une date en Java au format souhaité ?
  8. Quelle est la différence entre URI et URL ?
  9. Que sont les prises ?
  10. Différence entre les classes Socket et URL ?
Et voici mes réponses :
  1. Une adresse IP est une adresse réseau unique d'un nœud dans un réseau informatique construit sur la pile de protocoles TCP/IP. Internet nécessite des adresses uniques au monde ; dans le cas de travaux sur un réseau local, l'unicité de l'adresse au sein du réseau est requise. Dans la version du protocole IPv4, l'adresse IP fait 4 octets et dans la version du protocole IPv6, l'adresse IP fait 16 octets. Généralement, une adresse IP dans la version du protocole IPv4 est écrite sous forme de quatre nombres décimaux avec des valeurs de 0 à 255, séparées par un point, par exemple 192.168.0.3.

  2. Un domaine est une adresse de site Web ou une zone spécifique qui possède son propre nom, contrairement à tout autre nom dans le système de noms de domaine. Les domaines peuvent être de premier niveau, deuxième niveau, troisième niveau, etc. En règle générale, un domaine de premier niveau n'est pas disponible pour l'enregistrement pour les utilisateurs ordinaires (des exemples de domaines de premier niveau sont « .ru », « .com », « .net »). En règle générale, les domaines du troisième niveau et des niveaux suivants sont appelés sous-domaines.
    Un hôte est un ordinateur ou un serveur spécifique connecté à un réseau local ou mondial. L'hôte possède une adresse unique dans l'environnement de service TCP/IP (adresse IP).

  3. GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH, TRACE, LINK, UNLINK, CONNECT.

  4. OBTENIR POSTE TÊTE
    Corps de la demande Non Manger Non
    Corps de réponse Oui Oui Non
    Mise en cache du résultat de la requête Oui Non Oui, les gros titres
    Idempotence Oui Non Oui

    La méthode GET est utilisée pour demander le contenu d'une ressource spécifiée. La méthode POST est utilisée pour transférer les données utilisateur vers une ressource spécifiée. La méthode HEAD est généralement utilisée pour récupérer des métadonnées, vérifier l'existence d'une ressource (validation d'URL) et voir si elle a changé depuis le dernier accès. La méthode HEAD est similaire à la méthode GET, sauf qu'il n'y a aucun corps dans la réponse du serveur. La méthode GET est considérée comme une version simplifiée de POST, car la méthode GET n'implique pas une requête complète, seulement une URL en tant que telle.

  5. REST est un style architectural décrivant la manière dont les composants d'application distribués interagissent sur un réseau. Le terme a été inventé par Roy Fielding en 2000. Il a également présenté les exigences qu'une application distribuée doit satisfaire pour se conformer à l'architecture REST (ces applications sont également appelées RESTful). Voici les exigences :

    1. Modèle client-serveur (signifie que le réseau doit être composé d'un client et d'un serveur ; le serveur est celui qui possède les ressources, le client est celui qui les demande))
    2. Отсутствие состояния (означает, что ни клиент, ни server не отслеживают состояния друг друга)
    3. Кеширование (клиенты и промежуточные узлы могут кешировать результаты requestов; сооответственно, ответы serverа должны иметь явное or неявное обоmeaning, что они кешируемые or некешируемые)
    4. Единообразие интерфейса (означает, что между клиентами и serverами существует общий язык взаимодействия, который позволяет им быть заменяемыми or изменяемыми, без нарушения integrity системы):
      • Определение ресурса (означает, что каждый ресурс должны быть обозначен постоянным идентефикатором)
      • Управление ресурсами через представление (означает, что клиент хранит ресурс в виде его представления, и при желании изменения ресурса он отправляет serverу информацию о том, в Howом виде он хотел бы видеть этот ресурс; server же рассматривает этот How request How предложение, и сам решает, что делать ему с хранимым ресурсом)
      • Самодостаточные messages (каждое сообщение содержит достаточно информации, чтобы понять, How его обрабатывать)
      • Гипермедиа (означает, что клиенты изменяют состояние системы только через действия, которые динамически определены в гипермедиа на server)
      • Система слоёв (означает, что в системе может быть больше двух слоёв (клиент и server), и при этом каждый такой слой знает только о своих соседних слоях, и не знает об остальных слоях, и взаимодействует только с соседними слоями)
      • Код по требованию (означает, что функциональность клиента может быть расширения за счёт загрузки codeа с serverа в виде апплетов or сценариев)

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

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

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

  9. Сокеты — это связка IP-address + порт, позволяющая из внешней сети однозначно идентифицировать программу на компьютере or serverе. В Java для работы с сокетами есть два класса Socket и ServerSocket. Экземпляры первого класса играют роль клиента, экземпляры второго — роль serverа. Клиент может отправлять и принимать messages через сокет. Сервер же постоянно отслеживает requestы пользователей и отвечает на них.
    Для того, чтобы отправить данные через сокет, в классе Socket существует класс getOutnputStream(), возвращающий исходящий поток, с которым уже можно работать How обычно. Для приёма информацию нужно воспользоваться методом getInputStream(), который возвращает входящий поток. Дальше с этим потоком можно работать How с обычно потом ввода. Также стоит отметить, что при создании клиентского сокета (экземпляра класса Socket) в конструктор нужно передать ip-address serverа и порт, на котором он работает принимающая программа-server.
    При создании serverного сокета (экземпляра класса ServerSocket) нужно указывать только порт, через который будет работать программа. После этого вызывается метод accept(). Этот метод ожидание подключение клиента, а после этого возвращает экземпляр класса Socket, необходимый для взаимодействия с этим клиентом. Дальше работать идёт с экземпляром класса Socket, How в первом случае (в случае клиента).

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