# gRPC (Go) > Protocol Buffers, servizi gRPC, streaming, interceptor, gestione degli errori, metadata - 22 domande da colloquio - Mid-Level - [Domande da colloquio: Go](https://sharpskill.dev/it/technologies/go/domande-colloquio.md) ## 1. Che cos'è gRPC? **Risposta** gRPC è un framework RPC (Remote Procedure Call) open-source sviluppato da Google che usa HTTP/2 come protocollo di trasporto e Protocol Buffers come formato di serializzazione predefinito. A differenza di REST che usa JSON e HTTP/1.1, gRPC offre prestazioni migliori grazie al formato binario di Protocol Buffers e alle funzionalità avanzate di HTTP/2 (multiplexing, compressione degli header, server push). gRPC è ampiamente usato per la comunicazione tra microservizi perché supporta nativamente lo streaming bidirezionale, la generazione di codice client/server e l'uso di tipi fortemente tipizzati. ## 2. Qual è il ruolo principale di Protocol Buffers in gRPC? **Risposta** Protocol Buffers (protobuf) è il linguaggio di definizione dell'interfaccia (IDL) e il formato di serializzazione binaria usato di default in gRPC. Permette di definire la struttura dei messaggi e dei servizi nei file .proto, che vengono poi compilati per generare automaticamente codice client e server in linguaggi diversi. Il formato binario di protobuf è da 3 a 10 volte più compatto di JSON e offre prestazioni di serializzazione/deserializzazione nettamente superiori (fino a 20 volte più veloci). Questo rende gRPC particolarmente adatto alle comunicazioni ad alta frequenza tra microservizi. ## 3. Qual è la differenza tra una chiamata gRPC Unary e una chiamata Server Streaming? **Risposta** Una chiamata Unary è il tipo di chiamata gRPC più semplice: il client invia una singola richiesta e riceve una singola risposta, simile a una classica richiesta HTTP REST. Una chiamata Server Streaming consente al client di inviare una singola richiesta ma di ricevere un flusso (stream) di più risposte dal server. Ad esempio, un'API di notifiche può usare Server Streaming per inviare più aggiornamenti al client senza che questo debba fare polling. Questo riduce la latenza e il carico di rete rispetto a chiamate Unary ripetute. ## Altre 19 domande disponibili - Quale package Go viene usato per creare un server gRPC? - Come definire un servizio gRPC in un file .proto? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Go - [Fondamenti di Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-basics.md): 25 domande, Junior - [Strutture dati in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-data-structures.md): 20 domande, Junior - [Interfacce in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-interfaces.md): 18 domande, Junior - [Gestione degli errori](https://sharpskill.dev/it/technologies/go/domande-colloquio/error-handling.md): 20 domande, Junior - [Goroutine di base](https://sharpskill.dev/it/technologies/go/domande-colloquio/goroutines-basics.md): 20 domande, Junior - [Channels](https://sharpskill.dev/it/technologies/go/domande-colloquio/channels.md): 22 domande, Junior - [Go Modules](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-modules.md): 18 domande, Mid-Level - [Server HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-server.md): 24 domande, Mid-Level - [Client HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-client.md): 18 domande, Mid-Level - [Codifica JSON](https://sharpskill.dev/it/technologies/go/domande-colloquio/json-encoding.md): 20 domande, Mid-Level - [Database/SQL](https://sharpskill.dev/it/technologies/go/domande-colloquio/database-sql.md): 22 domande, Mid-Level - [Pacchetto context](https://sharpskill.dev/it/technologies/go/domande-colloquio/context-package.md): 20 domande, Mid-Level - [Testing](https://sharpskill.dev/it/technologies/go/domande-colloquio/testing.md): 22 domande, Mid-Level - [Pattern di concorrenza](https://sharpskill.dev/it/technologies/go/domande-colloquio/concurrency-patterns.md): 24 domande, Mid-Level - [Primitive di sincronizzazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/sync-primitives.md): 22 domande, Mid-Level - [Framework web Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-web-frameworks.md): 20 domande, Mid-Level - [Progettazione di API REST](https://sharpskill.dev/it/technologies/go/domande-colloquio/rest-api-design.md): 20 domande, Mid-Level - [Reflection](https://sharpskill.dev/it/technologies/go/domande-colloquio/reflection.md): 20 domande, Senior - [Gestione della memoria](https://sharpskill.dev/it/technologies/go/domande-colloquio/memory-management.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/go/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Generics](https://sharpskill.dev/it/technologies/go/domande-colloquio/generics.md): 20 domande, Senior - [Go Design Patterns](https://sharpskill.dev/it/technologies/go/domande-colloquio/design-patterns.md): 24 domande, Senior - [Microservices](https://sharpskill.dev/it/technologies/go/domande-colloquio/microservices.md): 24 domande, Senior - [Sicurezza e autenticazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/security-authentication.md): 24 domande, Senior - [Docker & Containerization](https://sharpskill.dev/it/technologies/go/domande-colloquio/docker-containerization.md): 20 domande, Senior - [Kubernetes Basics](https://sharpskill.dev/it/technologies/go/domande-colloquio/kubernetes-basics.md): 22 domande, Senior - [Go Avanzato](https://sharpskill.dev/it/technologies/go/domande-colloquio/advanced-go.md): 20 domande, Senior - [Sviluppo CLI](https://sharpskill.dev/it/technologies/go/domande-colloquio/cli-development.md): 20 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/go/domande-colloquio/grpc