AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1858561
Accepted
DevelBase2
DevelBase2
Asked: 2024-10-12 21:28:14 +0800 CST2024-10-12 21:28:14 +0800 CST 2024-10-12 21:28:14 +0800 CST

O protocolo HTTP exige que o protocolo de transporte subjacente seja baseado em conexão?

  • 772

Estou estudando a referência do protocolo HTTP da Mozilla e não entendo o que significa a seguinte parte:

Uma conexão é controlada na camada de transporte e, portanto, fundamentalmente fora do escopo do HTTP. O HTTP não exige que o protocolo de transporte subjacente seja baseado em conexão; ele só exige que ele seja confiável ou não perca mensagens (no mínimo, apresentando um erro nesses casos). Entre os dois protocolos de transporte mais comuns na Internet, o TCP é confiável e o UDP não. Portanto, o HTTP depende do padrão TCP, que é baseado em conexão.

Há algumas afirmações que parecem contraditórias:

  • O HTTP não exige que o protocolo de transporte subjacente seja baseado em conexão.
  • O HTTP depende do padrão TCP, que é baseado em conexão.

Minha pergunta:

Existe alguma situação em que não precisamos estabelecer uma conexão com o servidor pelo protocolo de transporte antes de enviar uma solicitação HTTP (ou qualquer solicitação de nível de aplicativo), e é isso que significa baseado em conexão?

http
  • 1 1 respostas
  • 28 Views

1 respostas

  • Voted
  1. Best Answer
    grawity_u1686
    2024-10-12T21:57:24+08:002024-10-12T21:57:24+08:00

    Na época em que o HTTP foi criado, o TCP era o principal protocolo de transporte universalmente disponível para a Internet que fornecia as propriedades necessárias – usar UDP era possível, mas exigiria o próprio HTTP para fornecer confiabilidade, o RDP (como no Reliable Data Protocol) teve pouca adoção, o SCTP ainda não havia sido inventado, etc., enquanto o TCP estava disponível em quase todos os sistemas que tinham uma implementação IP 1 .

    Portanto, o TCP foi a escolha natural para servidores e clientes HTTP usarem e, como todas as implementações precisam concordar com o transporte, na prática o HTTP depende do TCP para interoperabilidade.

    Entretanto, o HTTP explicitamente não mantém nenhum estado por conexão – duas solicitações HTTP se comportarão da mesma forma, independentemente de terem vindo por meio de uma única conexão TCP ou de conexões diferentes – portanto, ele não depende da propriedade "baseada em conexão" do TCP; ele depende do TCP apenas para suas outras propriedades.

    (Recentemente, porém, muitas implementações começaram a oferecer suporte ao QUIC como um transporte alternativo. É algo como, mas não exatamente, "HTTP sobre UDP", já que o QUIC realmente fica quase no mesmo nível do TCP em termos de propriedades que ele fornece ao protocolo de aplicação.)

    Existe alguma situação em que não precisamos estabelecer uma conexão com o servidor por meio do protocolo de transporte antes de enviar uma solicitação HTTP (ou qualquer nível de aplicativo)

    O HTTP pode funcionar dessa maneira; como mencionado, ele não mantém nenhum estado de nível de conexão, então ele pode funcionar em transportes que não têm conexão ou desconexão explícita. (Já vi HTTP sobre UDP, HTTP sobre D-Bus, etc.)

    Há muitos protocolos de nível de aplicação que não usam um transporte baseado em conexão; DNS e NTP são dois dos exemplos mais comuns, ambos baseados em trocas de solicitações únicas sem nenhuma operação explícita de conexão/desconexão. (O DNS pode usar TCP e frequentemente usa, mas o UDP continua sendo seu transporte padrão para a maioria das operações.)


    1 (Na verdade, a razão pela qual não havia "IPv2" ou "IPv3" era porque era conhecido como "TCPv2" e "TCPv3" antes de ser dividido nas duas camadas TCP/IP para a versão 4...)

    • 1

relate perguntas

  • Corrigir um erro de domínio: forçou o HTTPS, mas colocou um domínio errado agora não está mudando

  • Como cair para uma camada osi inferior?

  • Fonte usada para erros HTTP

  • Cabeçalho do host de entrada dobrado

  • wget retorna erro 404

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve