> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Protocols

> Apinizer platform supports various protocols used in modern API architectures. Full support is provided for HTTP/HTTPS (HTTP/1.1, HTTP/2), REST, WebSocket, gRPC, SOAP, and GraphQL protocols. Security, performance optimization, and protocol conversion features are available for all protocols.

## HTTP/HTTPS

HTTP and HTTPS protocols are Apinizer's core protocols and are fully supported.

### HTTP Versions

<CardGroup cols={2}>
  <Card title="HTTP/1.1" icon="globe">
    Full support

    * Keep-alive connections
    * Chunked transfer encoding
    * Compression (gzip, deflate, brotli)
  </Card>

  <Card title="HTTP/2" icon="globe">
    Full support

    * Multiplexing
    * Server push
    * Header compression
    * Binary framing
  </Card>

  <Card title="HTTPS" icon="shield-halved">
    TLS/SSL termination

    * TLS 1.2+
    * TLS 1.3 support
    * SNI (Server Name Indication) support
    * Certificate management
  </Card>
</CardGroup>

### HTTP Features

<AccordionGroup>
  <Accordion title="HTTP Methods">
    * **GET**: Resource retrieval
    * **POST**: Resource creation
    * **PUT**: Resource update
    * **DELETE**: Resource deletion
    * **PATCH**: Partial update
    * **HEAD**: Header information retrieval
    * **OPTIONS**: Querying supported methods
    * **Custom Methods**: Custom HTTP methods
    * **Method Override**: Method override support
  </Accordion>

  <Accordion title="Content Types">
    * **application/json**: JSON format
    * **application/xml**: XML format
    * **application/x-www-form-urlencoded**: Form data
    * **multipart/form-data**: Multiple form data
    * **text/plain, text/html**: Text formats
    * **Custom Content Types**: Custom content types
  </Accordion>

  <Accordion title="HTTP Headers">
    * **Standard HTTP Headers**: Standard HTTP headers
    * **Custom Headers**: Custom headers
    * **Header Manipulation**: Header manipulation
    * **CORS Headers**: Cross-Origin Resource Sharing headers
  </Accordion>
</AccordionGroup>

## REST

REST (Representational State Transfer) architecture is fully supported.

<CardGroup cols={2}>
  <Card title="REST Principles" icon="code">
    * Stateless communication
    * Resource-based URLs
    * Use of HTTP methods
    * JSON/XML representation
  </Card>

  <Card title="REST Features" icon="star">
    * RESTful API design
    * HATEOAS support
    * Content negotiation
    * Versioning support
  </Card>
</CardGroup>

## WebSocket

WebSocket protocol is fully supported for real-time communication.

### WebSocket Features

<AccordionGroup>
  <Accordion title="WebSocket Protocol">
    * **RFC 6455 Compliant**: Full compliance with WebSocket standard
    * **Full-Duplex Communication**: Bidirectional communication
    * **Low Latency**: Low latency
    * **Binary and Text Frame Support**: Binary and text frame support
  </Accordion>

  <Accordion title="WebSocket Features">
    * **Connection Management**: Connection management
    * **Message Routing**: Message routing
    * **Subprotocol Support**: Subprotocol support
    * **Ping/Pong Frames**: Ping/pong frames for connection control
  </Accordion>

  <Accordion title="Usage Scenarios">
    * **Real-Time Notifications**: Real-time notifications
    * **Chat Applications**: Chat applications
    * **Live Data Streaming**: Live data streaming
    * **Gaming Applications**: Gaming applications
  </Accordion>
</AccordionGroup>

### WebSocket Security

<CardGroup cols={2}>
  <Card title="WSS (WebSocket Secure)" icon="lock">
    * TLS/SSL encryption
    * Secure WebSocket connections
    * Certificate management
  </Card>

  <Card title="Authentication" icon="key">
    * Token-based authentication
    * Header-based authentication
    * Query parameter authentication
  </Card>
</CardGroup>

## gRPC

gRPC protocol is fully supported for microservice architectures.

### gRPC Features

<CardGroup cols={2}>
  <Card title="Protocol Buffers" icon="file-code">
    * Protocol Buffers (protobuf)
    * Schema definition
    * Code generation
    * Efficient serialization
  </Card>

  <Card title="gRPC Features" icon="network-wired">
    * **Unary RPC**: Single request-single response
    * **Server Streaming**: Server-side streaming
    * **Client Streaming**: Client-side streaming
    * **Bidirectional Streaming**: Bidirectional streaming
  </Card>

  <Card title="Performance" icon="gauge">
    * HTTP/2 based
    * Binary serialization
    * High performance
    * Low latency
  </Card>

  <Card title="Language Support" icon="code">
    * Multi-language support
    * Cross-platform
    * Language-agnostic
  </Card>
</CardGroup>

### gRPC Routing

<AccordionGroup>
  <Accordion title="gRPC Routing">
    * **Service-Based Routing**: Service-based routing
    * **Method-Based Routing**: Method-based routing
    * **Load Balancing**: Load balancing
    * **Failover**: Automatic failover
  </Accordion>

  <Accordion title="gRPC Interceptors">
    * **Request/Response Interceptors**: Request/response interceptors
    * **Metadata Handling**: Metadata management
    * **Error Handling**: Error handling
    * **Policy Application**: Policy support
  </Accordion>
</AccordionGroup>

## SOAP

SOAP (Simple Object Access Protocol) web services are fully supported.

### SOAP Features

<AccordionGroup>
  <Accordion title="SOAP Protocol">
    * **SOAP 1.1 and SOAP 1.2**: Support for both versions
    * **XML-Based Messaging**: XML-based messaging
    * **WSDL Support**: WSDL support
    * **SOAP Fault Handling**: Error handling
  </Accordion>

  <Accordion title="WS-* Standards">
    * **WS-Security**: Security standards
    * **WS-Addressing**: Addressing standards
    * **WS-ReliableMessaging**: Reliable messaging
    * **WS-Policy**: Policy standards
  </Accordion>

  <Accordion title="SOAP Features">
    * **SOAP to REST Conversion**: Conversion from SOAP to REST
    * **WSDL Generation**: WSDL generation
    * **SOAP Fault Handling**: SOAP error handling
    * **Attachment Support (MTOM)**: Attachment file support
  </Accordion>
</AccordionGroup>

### SOAP Usage Scenarios

<CardGroup cols={3}>
  <Card title="Legacy System Integration" icon="arrows-rotate">
    Integration with legacy SOAP services

    Compatible operation with existing SOAP services.
  </Card>

  <Card title="Enterprise Services" icon="building">
    Enterprise SOAP services

    Full support for enterprise SOAP services.
  </Card>

  <Card title="Protocol Conversion" icon="wand-magic-sparkles">
    Conversion from SOAP to REST

    Exposing SOAP services as REST API.
  </Card>
</CardGroup>

## GraphQL

Apinizer provides full support for GraphQL protocol with **reverse proxy**. GraphQL requests are routed directly to backend GraphQL services and all GraphQL features are supported.

<CardGroup cols={2}>
  <Card title="Query Support" icon="code">
    * Full query support
    * Field selection
    * Nested queries
    * Variables and fragments
  </Card>

  <Card title="Mutation Support" icon="code">
    * Full mutation support
    * Variables support
    * Complex mutations
  </Card>

  <Card title="Subscription Support" icon="code">
    * Subscription support
    * Real-time updates over WebSocket
    * Event-driven subscriptions
  </Card>

  <Card title="Policy Support" icon="shield">
    * Applying policies to GraphQL requests
    * Rate limiting
    * Authentication and authorization
    * Query complexity limiting
  </Card>
</CardGroup>

<Info>
  GraphQL support works in reverse proxy mode. GraphQL requests are routed through Apinizer to backend GraphQL services and all Apinizer policies (security, rate limiting, authentication) can also be applied to GraphQL requests.
</Info>

## Protocol Comparison

<CardGroup cols={2}>
  <Card title="HTTP/HTTPS" icon="globe">
    **Support Level**: ✅ Full Support

    **Usage Scenario**: REST APIs, Web services, General-purpose APIs
  </Card>

  <Card title="REST" icon="code">
    **Support Level**: ✅ Full Support

    **Usage Scenario**: Modern APIs, Microservices, Public APIs
  </Card>

  <Card title="WebSocket" icon="globe">
    **Support Level**: ✅ Full Support

    **Usage Scenario**: Real-time applications, Chat, Live data streaming
  </Card>

  <Card title="gRPC" icon="network-wired">
    **Support Level**: ✅ Full Support

    **Usage Scenario**: Microservice communication, High performance requirements
  </Card>

  <Card title="SOAP" icon="file-code">
    **Support Level**: ✅ Full Support

    **Usage Scenario**: Legacy systems, Enterprise services, WS-\* standards
  </Card>

  <Card title="GraphQL" icon="code">
    **Support Level**: ✅ Full Support (Reverse Proxy)

    **Usage Scenario**: GraphQL APIs, Flexible data querying, Modern APIs
  </Card>
</CardGroup>

## Protocol Conversion

Apinizer can perform conversion between different protocols:

<AccordionGroup>
  <Accordion title="SOAP to REST">
    Exposing SOAP services as REST API:

    * Publishing SOAP services as REST endpoints
    * Creating OpenAPI spec from WSDL
    * Converting XML to JSON
    * Converting SOAP messages to REST request/response
  </Accordion>

  <Accordion title="REST to gRPC">
    Exposing REST APIs as gRPC services:

    * Publishing REST endpoints as gRPC services
    * Creating protocol buffer definitions
    * Converting JSON to protobuf
  </Accordion>

  <Accordion title="HTTP to WebSocket">
    Converting HTTP requests to WebSocket messages:

    * Converting HTTP requests to WebSocket messages
    * Providing bidirectional communication
    * Real-time communication support
  </Accordion>
</AccordionGroup>

## Protocol Selection

<CardGroup cols={2}>
  <Card title="REST API" icon="code">
    **When to Use:**

    * General-purpose APIs
    * Web and mobile applications
    * Public APIs
    * Simple and standard API design
  </Card>

  <Card title="gRPC" icon="network-wired">
    **When to Use:**

    * Microservice communication
    * High performance requirements
    * Internal services
    * Binary serialization requirement
  </Card>

  <Card title="WebSocket" icon="globe">
    **When to Use:**

    * Real-time applications
    * Chat, notifications
    * Live data streaming
    * Bidirectional communication requirement
  </Card>

  <Card title="SOAP" icon="file-code">
    **When to Use:**

    * Legacy systems
    * Enterprise services
    * WS-\* standards requirement
    * Enterprise integrations
  </Card>

  <Card title="GraphQL" icon="code">
    **When to Use:**

    * Flexible data querying requirement
    * Client-driven API design
    * Over-fetching/under-fetching issues
    * Modern APIs
  </Card>
</CardGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Supported Libraries" icon="book" href="/en/concepts/supported-technologies/supported-libraries">
    Learn about supported libraries
  </Card>

  <Card title="Supported Databases" icon="database" href="/en/concepts/supported-technologies/supported-databases">
    Learn about supported databases
  </Card>

  <Card title="Routing and Upstream" icon="route" href="/en/concepts/core-concepts/routing-and-upstream">
    Learn about routing and upstream concepts
  </Card>

  <Card title="Creating API Proxy" icon="plus" href="/en/develop/api-proxy-creation/api-creator-db-api-creation">
    Creating API Proxy
  </Card>
</CardGroup>
