Uma introdução a TCP, UDP e Sockets \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 16 Horas 

 35 Min 

 46 Seg 

   Tempo restante da oferta: 16 35 46 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Uma introdução a TCP, UDP e Sockets  [ Rede de computadores ](https://www.treinaweb.com.br/blog/categoria/rede-de-computadores) 

# Uma introdução a TCP, UDP e Sockets

 Uma introdução (base teórica) para TCP, UDP e Sockets, principalmente para desenvolvedores que desejam programar com Sockets.

 [ Kennedy Tedesco ](https://www.treinaweb.com.br/blog/autor/kennedy-tedesco) 8 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/11140050/sockets-redes-tcp-udp.png)  

A ideia desse artigo é introduzir o essencial para desenvolvedores que desejam compreender sockets. O foco estará na parte teórica, que servirá de base para outros artigos que lidarão com a parte prática da programação com sockets.

[  ![Rede de Computadores - Protocolo TCP/IP](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/rede-computadores.svg)   Curso Rede de Computadores - Protocolo TCP/IP Conhecer o curso ](https://www.treinaweb.com.br/curso/rede-de-computadores-protocolo-tcp-ip)

## A rede de computadores

Uma rede de computadores caracteriza-se por dois ou mais computadores interligados, não importando por qual meio (cabos, ondas de rádio etc), desde que sejam capazes de trocar informações entre si e/ou compartilhar seus recursos de hardware.

Em uma rede de computadores também podemos ter clientes e servidores. *Servidor* é uma máquina que fornece um serviço qualquer na rede e *Cliente* é uma máquina que consome o serviço fornecido pelo *Servidor*. Também dizemos que algumas aplicações são clientes e outras servidoras, quando fornecem ou consomem serviços na rede. Por exemplo, o [Mozilla Thunderbird](https://www.thunderbird.net/pt-BR/) é um cliente de e-mail, já o [Postfix](https://e-tinet.com/linux/postfix-servidor-email/) é um servidor de e-mail. Um navegador de internet (Chrome, Firefox etc) é uma aplicação cliente que requisita dados de um servidor.

Uma rede funciona sob protocolos (que são regras que definem o funcionamento dela) e a família de protocolos mais conhecida e utilizada é a **TCP/IP**, que engloba os protocolos *IP* (da camada de rede), *TCP* e *UDP* (da camada de transporte), *HTTP* (da camada de aplicação) entre outros.

A referência de como as redes funcionam e são construídas vem do [modelo OSI](https://pt.wikipedia.org/wiki/Modelo_OSI), que foi definido pela ISO em meados dos anos 80 para servir de referência para o projeto de hardware e software das redes, pois o que acontecia é que cada fornecedor implementava o seu próprio padrão e isso prejudicava a interoperabilidade. Apesar do modelo OSI ainda ser a referência teórica (o modelo) para as redes, a arquitetura **TCP/IP** é que tem a aplicabilidade e o protagonismo nas intranets e na internet.

O modelo OSI possui sete camadas enquanto o TCP/IP é dividido em cinco. O diagrama abaixo mostra onde as camadas do modelo TCP/IP se “encaixam” no OSI:

![Diagrama TCP/IP - OSI](https://dkrn4sk0rn31v.cloudfront.net/2019/06/08115141/osi-tcp.png)

O protocolo [IP (Internet Protocol)](https://pt.wikipedia.org/wiki/Protocolo_de_Internet) é o mais importante da família *TCP/IP* (ele se localiza na camada de rede) e ele deve ser associado com outros protocolos e, no contexto desse artigo, os mais importantes e mais utilizados são o *TCP* e o *UDP*.

## TCP vs UDP

Ambos são protocolos da camada de transporte e, quando precisamos de confiabilidade no transporte do dado, usamos o protocolo *IP* associado ao *TCP* (que garante a entrega das informações). Quando priorizamos mais velocidade e menos controle, associamos o protocolo *IP* ao *UDP* (tráfego de voz e vídeo são bons exemplos onde o UDP teria boa aplicabilidade, ademais, perdendo um ou outro pacote, não interfere totalmente no todo, permanecendo inteligível).

Observe que a comunicação no TCP se dá nas duas pontas:

![comunicação TCP](https://dkrn4sk0rn31v.cloudfront.net/2019/06/01124308/tcp.png)

Algumas das principais características do TCP (*Transmission Control Protocol*):

- Orientado à conexão (só transmite dados se uma conexão for estabelecida depois de um *Three-way Handshake*);
- É Full-duplex, ou seja, permite que as duas máquinas envolvidas transmitam e recebam ao mesmo tempo;
- Garante a entrega, sequência (os dados são entregues de forma ordenada), não duplicação e não corrompimento;
- Automaticamente divide as informações em pequenos pacotes;
- Garante equilíbrio no envio dos dados (para não causar “sobrecarga” na comunicação);

No UDP, a comunicação se dá em uma ponta e, se algum segmento falha, isso é ignorado e o fluxo continua:

![Diagrama Comunicação UDP](https://dkrn4sk0rn31v.cloudfront.net/2019/06/01124454/udp.png)

Algumas das principais características do UDP (*User Datagram Protocol*):

- Diferente do TCP ele **não** é orientado à conexão;
- Não é confiável como o TCP, ele não garante a entrega completa dos dados;
- É preciso que dividamos manualmente os dados em datagramas (entidades de dados);
- Não garante a sequência da entrega, portanto, os dados podem chegar em uma ordem aleatória;

Por essas características menos restritivas (menos controles) ele é muito mais rápido que o TCP. Como contrapartida, ele exige um pouco mais do desenvolvedor na hora de implementá-lo.

Por fim, é importante pontuar que tanto o *UDP* quanto o *TCP* trabalham com portas, que são elementos lógicos que interligam clientes e servidores de aplicações em redes *TCP/IP*. O cliente precisa saber qual porta ele se conectará no servidor. Por exemplo, servidores web por padrão usam a porta *80* para servir as páginas e quando acessamos uma página web usando o protocolo *http* (que é um protocolo de aplicação da *TCP/IP*) uma conexão *TCP* à porta *80* do servidor é feita.

## O que é um Socket?

Socket provê a comunicação entre *duas pontas* (fonte e destino) - também conhecido como *two-way communication* - entre dois processos que estejam na mesma máquina (*Unix Socket*) ou na rede (*TCP/IP Sockets*). Na rede, a representação de um socket se dá por `ip:porta`, por exemplo: `127.0.0.1:4477` (IPv4). Um socket que usa rede é um Socket TCP/IP.

Muito do que fazemos no dia a dia faz uso de sockets. O nosso navegador utiliza sockets para requisitar as páginas; quando acessamos o nosso servidor pelo protocolo de aplicação *SSH* também estamos abrindo e utilizando um socket.

Sabendo que *TCP/IP* é base da nossa comunicação na internet, considerando o [modelo de rede OSI](https://pt.wikipedia.org/wiki/Modelo_OSI), os *sockets* estão entre a camada de aplicação e a de transporte:

![Diagrama comunicação socket](https://dkrn4sk0rn31v.cloudfront.net/2019/05/31211650/socket-transport-application.png)[  ![Rede de Computadores - Routing e Switching](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/rede-computadores.svg)   Curso Rede de Computadores - Routing e Switching Conhecer o curso ](https://www.treinaweb.com.br/curso/rede-de-computadores-routing-e-switching)

Para os processos envolvidos a sensação é que a comunicação está acontecendo diretamente entre eles, no entanto, ela está passando pelas camadas da rede. Essa abstração provida pelos Sockets é o que chamamos de comunicação lógica. Outra forma de entender os Sockets é que eles são a “interface” de comunicação interprocessos.

Todo cliente deve conhecer o *socket* do servidor (conjunto ip e porta) para se comunicar, mas o servidor só vai conhecer o *socket* do cliente quando este realizar uma conexão com ele, ou seja, a conexão no modelo *cliente-servidor* é sempre iniciada pelo cliente.

O diagrama abaixo mostra que a porta do servidor precisa ser previamente conhecida pelo cliente, enquanto que pro servidor não importa qual é a porta do cliente, ele vai conhecê-la quando a conexão dele com o cliente for estabelecida.

![Diagrama socket](https://dkrn4sk0rn31v.cloudfront.net/2019/06/08110028/sockets.png)

Sistemas operacionais baseados no Unix proveem uma interface padrão para operações *I/O* (input e output) que se passa por descritores de arquivo. Um descritor de arquivo é representado por um número inteiro que se associa a um arquivo aberto e, nesses sistemas, há uma generalização de que “tudo é um arquivo”, então, nesse contexto, um arquivo pode ser uma conexão de rede (um socket é um tipo especial de arquivo), um arquivo de texto, um arquivo de áudio, até mesmo uma pasta é um tipo especial de arquivo.

Como um socket se comporta como um arquivo, chamadas de sistema de leitura e escrita são aplicáveis, da mesma forma como funcionam em um arquivo ordinário, e é aqui que entra a programação de sockets com a API [**POSIX sockets**](https://en.wikipedia.org/wiki/Berkeley_sockets). Linguagens como o Java, PHP etc, abstraem isso fornecendo ao desenvolvedor uma API de ainda mais alto nível.

[  ![Python - Orientação a objetos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/python.svg)   Curso Python - Orientação a objetos Conhecer o curso ](https://www.treinaweb.com.br/curso/python-orientacao-a-objetos)

### Unix Socket

Em sistemas *Unix* e agora recentemente também no [Windows 10](https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/), temos um mecanismo para a comunicação entre processos que estão no mesmo host (ao invés da rede), chamado de Unix Socket. A diferença entre um [Unix Socket](https://en.wikipedia.org/wiki/Unix_domain_socket) (*IPC Socket*) de um [TCP/IP Socket](https://en.wikipedia.org/wiki/Network_socket) é que o primeiro permite a comunicação entre processos que estão na mesma máquina. Já o segundo, além disso, permite a comunicação entre processos através da rede.

No entanto, um *TCP/IP Socket* também pode ser usado para a comunicação de processos que estão na mesma máquina através do [loopback](https://pt.wikipedia.org/wiki/Loopback) que é uma interface virtual de rede que permite que um cliente e um servidor no mesmo *host* se comuniquem (em IPv4 através do IP *127.0.0.0*).

A particularidade é que *Unix Sockets* estão sujeitos às permissões do sistema e costumam ser um pouco mais performáticos, pois não precisam realizar algumas checagens e operações, por exemplo, de roteamento, algo que acontece com os *TCP/IP Sockets*. Ou seja, se os processos estão na mesma máquina, *Unix Sockets* podem ser a melhor opção, mas se estiverem distribuídos na rede, os *TCP/IP Sockets* são a escolha certa.

Se você tem acesso a algum servidor baseado em Unix, execute `netstat -a -p --unix` que ele listará todos os *Unix Sockets* abertos no sistema operacional (bem como mostrará outras informações como o tipo do *Socket*, caminho etc). Se você quiser visualizar tanto os *TCP/IP Sockets* quanto os *Unix Sockets*, você pode executar `netstat -na`, ele exibirá duas tabelas listando todos os sockets abertos:

```
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:9070          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:9072          0.0.0.0:*               LISTEN

...

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    26007836 /run/user/1000/systemd/notify
unix  2      [ ACC ]     SEQPACKET  LISTENING     1976     /run/udev/control

...

```

Existem quatro tipos de sockets: *Stream Sockets*, *Datagram Sockets*, *Raw Sockets* e *Sequenced Packet Sockets* sendo que os dois primeiros são os mais comuns e utilizados.

- **Stream Sockets (SOCK\_STREAM)**: Esse tipo usa **TCP**, portanto, todas as características enumeradas anteriormente se aplicam a ele: garantia de entrega e ordem, orientado à conexão etc;
- **Datagram Sockets (SOCK\_DGRAM)**: Esse tipo usa **UDP**, portanto, não é orientado à conexão, não garante entrega completa dos dados e exige um controle mais especial do desenvolvedor.

[  ![Administrador de redes Júnior](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/rede-computadores.svg)   Formação Administrador de redes Júnior Conhecer a formação ](https://www.treinaweb.com.br/formacao/administrador-de-redes-junior)

## Concluindo

Sockets estão presentes em quase tudo o que fazemos na internet, naquele jogo multiplayer que você joga, naquele chat que você iniciou online e muito mais. As linguagens de programação (ou extensões delas) abstraem grande parte da programação com sockets. Espero que esse artigo te incentive a trabalhar/estudar um pouco mais sobre eles usando a sua linguagem favorita. Veja nossos artigos sobre [rede de computadore](https://www.treinaweb.com.br/blog/categoria/rede-de-computadores/ "rede de computadore")s.

### Recomendação de leitura

Se você programa ou tem interesse por PHP: [Programação de Sockets em PHP](https://www.treinaweb.com.br/blog/programacao-de-sockets-em-php/ "Programação de Sockets em PHP").

 [ ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/06/BANNER-BLOG-2-2.jpg) ](https://api.whatsapp.com/send/?phone=5544988609539&text=Olá,+li+o+artigo+no+blog+e+gostaria+de+saber+mais+sobre+a+TreinaWeb.)

- [ #Sockets ](https://www.treinaweb.com.br/blog/tag/sockets)
- [ #Rede de Computadores ](https://www.treinaweb.com.br/blog/tag/rede-de-computadores)
- [ #TCP/IP ](https://www.treinaweb.com.br/blog/tag/tcp-ip)

Autor

 ![Kennedy Tedesco](//secure.gravatar.com/avatar/236c86e9469327ba7a9250ff15fef424?d=mm)

## Kennedy Tedesco

 Head de desenvolvimento. Vasta experiência em desenvolvimento Web com foco em PHP. Graduado em Sistemas de Informação. Pós-graduando em Arquitetura de Software Distribuído pela PUC Minas. Zend Certified Engineer (ZCE) e Coffee Addicted Person (CAP). [@KennedyTedesco](https://twitter.com/KennedyTedesco) 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/kennedy-tedesco)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/11140050/sockets-redes-tcp-udp-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ Programação de Sockets em PHP ](https://www.treinaweb.com.br/blog/programacao-de-sockets-em-php) 

     Neste artigo veremos uma introdução à programação de sockets com o PHP.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/05/01125223/react-php-imagem-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Trabalhando com Sockets no ReactPHP ](https://www.treinaweb.com.br/blog/trabalhando-com-sockets-no-reactphp) 

     Veremos neste artigo como usar o componente de socket do ReactPHP para criar um chat pelo terminal. Além disso, veremos as bases para a construção de servidores TCP/IP.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/08/24120107/streams-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Streams no PHP ](https://www.treinaweb.com.br/blog/streams-no-php) 

     Você, desenvolvedor PHP, já teve a oportunidade de trabalhar mais intimamente com Streams? Se você já teve ou não, esse artigo é pra você! Uma introdução ao essencial sobre o assunto.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/01/28160855/websockts-php-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Aplicações em tempo real com PHP usando WebSockets ](https://www.treinaweb.com.br/blog/aplicacoes-em-tempo-real-com-php-usando-websockets) 

     Neste artigo veremos uma introdução a WebSockets com a criação de um servidor em PHP e usando o navegador do usuário como cliente.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/12132017/introducao-swoole-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Introdução ao Swoole, framework PHP assíncrono baseado em corrotinas ](https://www.treinaweb.com.br/blog/introducao-ao-swoole-framework-php-assincrono-baseado-em-corrotinas) 

     Uma Introdução ao Swoole, framework PHP assíncrono baseado em corrotinas e comparação dele com o modelo tradicional que usa um servidor web (nginx, apache etc) com PHP-FPM.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/12132017/introducao-swoole-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Trabalhando com corrotinas, canais e explorando um pouco mais o scheduler de corrotinas do Swoole ](https://www.treinaweb.com.br/blog/trabalhando-com-corrotinas-canais-e-explorando-um-pouco-mais-o-scheduler-de-corrotinas-do-swoole) 

     Neste artigo trabalharemos com os conceitos fundamentais de corrotinas, canais, defer etc, também exploraremos algumas opções do scheduler como, por exemplo, fazê-lo operar de forma preemptiva.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/05/01125223/react-php-imagem-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ Introdução à programação assíncrona em PHP usando o ReactPHP ](https://www.treinaweb.com.br/blog/introducao-a-programacao-assincrona-em-php-usando-o-reactphp) 

     Uma introdução à programação assíncrona com PHP e uso básico dos componentes do ReactPHP.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/06/HTTPS-400x280.png)  [ Segurança da Informação ](https://www.treinaweb.com.br/blog/categoria/seguranca-da-informacao) 

     7 anos atrás

    ##  [ Termos comuns de segurança: HTTPS ](https://www.treinaweb.com.br/blog/termos-comuns-de-seguranca-https) 

     Com certeza, ao navegar na internet, você já viu no começo da URL o protocolo HTTPS. Mas, você sabe para que serve e como funciona esse protocolo?

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/06/ASCII-UNICODE-400x280.png)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     7 anos atrás

    ##  [ Uma introdução a ASCII e Unicode ](https://www.treinaweb.com.br/blog/uma-introducao-a-ascii-e-unicode) 

     Veja um pouco mais sobre os sistemas de codificação de caracteres ASCII e Unicode.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/DOMAIN-DRIVEN-DESIGN-400x280.png)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     4 anos atrás

    ##  [ Uma breve introdução ao DDD ](https://www.treinaweb.com.br/blog/uma-breve-introducao-ao-ddd) 

     Confira neste artigo uma breve introdução ao DDD: o que é domínio, linguagem úbiqua e bounded contexts.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/leis-usabilidade-400x280.jpg)  [ Acessibilidade e User Experience (UX) ](https://www.treinaweb.com.br/blog/categoria/acessibilidade-e-user-experience-ux) 

     10 anos atrás

    ##  [ Três leis para melhorar a usabilidade da sua aplicação ](https://www.treinaweb.com.br/blog/tres-leis-para-melhorar-a-usabilidade-da-sua-aplicacao) 

     Uma breve introdução e alguns exemplos de como as leis abordadas neste post podem ser aplicadas para melhorar a usabilidade do seu produto/serviço.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/12/npm-voce-sabe-o-que-da-para-fazer-com-ele-400x280.png)  [ Node ](https://www.treinaweb.com.br/blog/categoria/node-js) 

     3 anos atrás

    ##  [ Introdução ao gerenciamento de projetos Node.js com npm ](https://www.treinaweb.com.br/blog/introducao-ao-gerenciamento-de-projetos-node-js-com-npm) 

     Neste artigo sobre Introdução ao gerenciamento de projetos Node.js vamos aprender os principais comandos utilizados no npm.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **16h 35min 46s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
