JavaRush /Blogue Java /Random-PT /Nível 40. Respostas às perguntas da entrevista sobre o tó...
lichMax
Nível 40
Санкт-Петербург

Nível 40. Respostas às perguntas da entrevista sobre o tópico do nível

Publicado no grupo Random-PT
Nível 40. Respostas às perguntas da entrevista sobre o tema do nível - 1Na verdade, as seguintes questões estavam neste nível:
  1. O que é um endereço IP?
  2. Qual é a diferença entre host e domínio?
  3. Quais métodos HTTP você conhece?
  4. Qual é a diferença entre os métodos GET, POST e HEAD?
  5. O que é REST?
  6. Por que a classe Calendar é necessária em Java?
  7. Como converter uma data em Java para o formato desejado?
  8. Qual é a diferença entre URI e URL?
  9. O que são soquetes?
  10. Diferença entre classes de soquete e URL?
E aqui estão minhas respostas:
  1. Um endereço IP é um endereço de rede exclusivo de um nó em uma rede de computadores construída na pilha de protocolos TCP/IP. A Internet requer endereços globalmente únicos; no caso de trabalhar em rede local, é necessária a exclusividade do endereço dentro da rede. Na versão do protocolo IPv4, o endereço IP tem 4 bytes e na versão do protocolo IPv6, o endereço IP tem 16 bytes. Normalmente, um endereço IP na versão do protocolo IPv4 é escrito como quatro números decimais com valores de 0 a 255, separados por um ponto, por exemplo, 192.168.0.3.

  2. Um domínio é um endereço de site ou uma zona específica que possui seu próprio nome, diferente de qualquer outro nome no sistema de nomes de domínio. Os domínios podem ser de primeiro nível, segundo nível, terceiro nível, etc. Normalmente, um domínio de primeiro nível não está disponível para registro de usuários comuns (exemplos de domínios de primeiro nível são “.ru”, “.com”, “.net”). Normalmente, os domínios do terceiro nível e dos níveis subsequentes são chamados de subdomínios.
    Um host é um computador ou servidor específico conectado a uma rede local ou global. O host possui um endereço exclusivo no ambiente de serviço TCP/IP (endereço IP).

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

  4. PEGAR PUBLICAR CABEÇA
    Corpo da Solicitação Não Comer Não
    Corpo de Resposta Sim Sim Não
    Armazenando em Cache o Resultado da Solicitação Sim Não Sim, manchetes
    Idempotência Sim Não Sim

    O método GET é usado para solicitar o conteúdo de um recurso especificado. O método POST é usado para transferir dados do usuário para um recurso especificado. O método HEAD é normalmente usado para recuperar metadados, verificar a existência de um recurso (validação de URL) e ver se ele mudou desde o último acesso. O método HEAD é semelhante ao método GET, exceto que não há corpo na resposta do servidor. O método GET é considerado uma versão simplificada do POST, pois o método GET não implica uma solicitação completa, apenas uma URL propriamente dita.

  5. REST é um estilo arquitetônico de como os componentes de aplicativos distribuídos interagem em uma rede. O termo foi cunhado por Roy Fielding em 2000. Ele também introduziu os requisitos que um aplicativo distribuído deve satisfazer para estar em conformidade com a arquitetura REST (tais aplicativos também são chamados de RESTful). Estes são os requisitos:

    1. Modelo cliente-servidor (significa que a rede deve ser composta por um cliente e um servidor; o servidor é quem possui os recursos, o cliente é quem os solicita))
    2. Sem estado (significa que nem o cliente nem o servidor acompanham o estado um do outro)
    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 может работать с любыми протоколами.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION