Systems and methods for a SPDY to HTTP gateway

US9438701B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9438701-B2
Application numberUS-201313887004-A
CountryUS
Kind codeB2
Filing dateMay 3, 2013
Priority dateMay 5, 2012
Publication dateSep 6, 2016
Grant dateSep 6, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure is directed towards a system and method for providing a SPDY to HTTP gateway via a device intermediary to a plurality of clients and a server. An NPN handshake by the intermediary device may establish SPDY support. The intermediary device may receive and process one or more control frames via SPDY session with the client. The intermediary device may generate and transmit HTTP communication to server corresponding to SPDY control frames. The intermediary device may receive and process one or more HTTP responses from server. The intermediary device may generate and transmit SPDY communication via SPDY session to client corresponding to HTTP response.

First claim

Opening claim text (preview).

What is claimed: 1. A method for providing a SPDY to HyperText Transfer Protocol (HTTP) gateway via a device intermediary to a plurality of clients and a server, the method comprising: (a) receiving, by a device intermediary to a plurality of clients and a server, one or more control frames via a SPDY session with a client of the plurality of clients, the SDPY session established by the device responsive to receiving an empty Transport Layer Security (TLS) Next Protocol Negotiation (NPN) extension during a TLS handshake between the device and the client; (b) decompressing, by the device, name-value pairs in the header block of the one or more control frames; (c) identifying, by the device, in the decompressed name-value-pairs a predetermined set of headers; and (d) generating, by the device responsive to the identification and for transmission to the server via HTTP, an HTTP request that comprises the predetermined set of headers from the one of more control frames of the SPDY session. 2. The method of claim 1 , wherein step (a) further comprises receiving, by the device, a request from the client to establish a Transport Layer Security (TLS) session with the server, identifying, by the device, from the request that a TLS Next Protocol Negotiation (NPN) extension is empty, transmitting, by the device responsive to the identification, a SPDY version and HTTP version; and establishing, by the device, an SPDY handler based on a version of the SPDY protocol selected by the client during an NPN handshake. 3. The method of claim 1 , wherein step (a) further comprises validating, by the device, a version and stream id of the one or more control frames. 4. The method of claim 1 , wherein step (a) further comprising accumulating, by the device, packets received from the client via the SPDY session if a length specified in a control frame of the one or more control frame is larger than a size of a current packet. 5. The method of claim 1 , further comprising demultiplexing, by the device, incoming SPDY streams received from the client via the SDPY session. 6. The method of claim 1 , wherein step (b) further comprising decompressing, by the device, one or more name-value pairs in the header block of the one or more control frames using zlib decompression. 7. The method of claim 1 , wherein step (c) further comprises parsing, by the device, output of decompression the name-value pairs corresponding to the predetermined set of headers comprising a URL, a VERSION and a METHOD header. 8. The method of claim 1 , wherein step (d) further comprises including, by the device, any remaining name-value pairs of the header block from the control frame in the generated HTTP request. 9. The method of claim 1 , wherein step (d) further comprises inserting, by the device, a stream id header in an HTTP header of the generated HTTP request, the stream id indicating that the HTTP request is created from an SPDY session. 10. The method of claim 1 , further comprising receiving, by the device, one or more data frames from the client via the SPDY session, de-framing the data frames, generating one or more HTTP requests with data from the data frames and transmitting the one or more HTTP requests to the server. 11. A system for providing a SPDY to HyperText Transfer Protocol (HTTP) gateway via a device intermediary to a plurality of clients and a server, the system comprising: a device intermediary to a plurality of clients and a server, the device configured to receive one or more control frames via a SPDY session with a client of the plurality of clients; wherein the device is configured to: establish the SPDY session responsive to receiving an empty Transport Layer Security (TLS) Next Protocol Negotiation (NPN) extension during a TLS handshake between the device and the client decompress name-value pairs in the header block of the one or more control frames; identify in the decompressed name-value-pairs a predetermined set of headers; and generate, responsive to the identification and for transmission to the server via HTTP, an HTTP request that comprises the predetermined set of headers from the one of more control frames of the SPDY session. 12. The system of claim 11 , wherein step (a) further comprises receiving, by the device, a request from the client to establish a Transport Layer Security (TLS) session with the server, identifying, by the device, from the request that a TLS Next Protocol Negotiation (NPN) extension is empty, transmitting, by the device responsive to the identification, a SPDY version and HTTP version; and establishing, by the device, an SPDY handler based on a version of the SPDY protocol selected by the client during an NPN handshake. 13. The system of claim 11 , wherein the device is further configured to validate a version and stream id of the one or more control frames. 14. The system of claim 11 , wherein the device is further configured to accumulate packets received from the client via the SPDY session if a length specified in a control frame of the one or more control frame is larger than a size of a current packet. 15. The system of claim 11 , the device is further configured to demultiplex incoming SPDY streams received from the client via the SDPY session. 16. The system of claim 11 , wherein the device is further configured to decompress one or more name-value pairs in the header block of the one or more control frames using zlib decompression. 17. The system of claim 11 , wherein the device is further configured to parse output of decompression the name-value pairs corresponding to the predetermined set of headers comprising a URL, a VERSION and a METHOD header. 18. The system of claim 11 , wherein the device is further configured to include any remaining name-value pairs of the header block from the control frame in the generated HTTP request. 19. The system of claim 11 , wherein the device is further configured to insert a stream id header in an HTTP header of the generated HTTP request, the stream id indicating that the HTTP request is created from the SPDY session. 20. The system of claim 11 , wherein the device is further configured to receive one or more data frames from the client via the SPDY session, de-frame the data frames, generate one or more HTTP requests with data from the data frames and transmit the one or more HTTP requests to the server.

Assignees

Inventors

Classifications

  • H04L69/08Primary

    Protocols for interworking; Protocol conversion · CPC title

  • H04L69/26Primary

    Special purpose or proprietary protocols or architectures (network applications for proprietary or special purpose networking environments H04L67/12) · CPC title

  • based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9438701B2 cover?
The present disclosure is directed towards a system and method for providing a SPDY to HTTP gateway via a device intermediary to a plurality of clients and a server. An NPN handshake by the intermediary device may establish SPDY support. The intermediary device may receive and process one or more control frames via SPDY session with the client. The intermediary device may generate and transmit …
Who is the assignee on this patent?
Citrix Systems Inc
What technology area does this patent fall under?
Primary CPC classification H04L69/08. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Sep 06 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).