Package org.eclipse.jetty.http

Examples of org.eclipse.jetty.http.HttpField


   
    @Test
    public void testJustRight()
    {
        HpackContext ctx = new HpackContext(38);
        HttpField field = new HttpField("foo","bar");
        Entry entry=ctx.add(field);
        Assert.assertNotNull(entry);
        Assert.assertThat(entry.toString(),Matchers.startsWith("{D,0,foo: bar,"));
    }
View Full Code Here


   
    @Test
    public void testEvictOne()
    {
        HpackContext ctx = new HpackContext(38);
        HttpField field0 = new HttpField("foo","bar");
       
        assertEquals(field0,ctx.add(field0).getHttpField());
        assertEquals(field0,ctx.get("foo").getHttpField());
       
        HttpField field1 = new HttpField("xxx","yyy");
        assertEquals(field1,ctx.add(field1).getHttpField());

        assertNull(ctx.get(field0));
        assertNull(ctx.get("foo"));
        assertEquals(field1,ctx.get(field1).getHttpField());
View Full Code Here

    public void testEvictNames()
    {
        HpackContext ctx = new HpackContext(38*2);
        HttpField[] field =
        {
           new HttpField("name","v0"),
           new HttpField("name","v1"),
           new HttpField("name","v2"),
           new HttpField("name","v3"),
           new HttpField("name","v4"),
           new HttpField("name","v5"),
        };
       
        Entry[] entry = new Entry[field.length];
       
        // Add 2 name entries to fill table
        for (int i=0;i<=1;i++)
            entry[i]=ctx.add(field[i]);
       
        // check there is a name reference and it is the most recent added
        assertEquals(entry[1],ctx.get("name"));

        // Add 1 other entry to table and evict 1
        ctx.add(new HttpField("xxx","yyy"));
       
        // check the name reference has been not been evicted
        assertEquals(entry[1],ctx.get("name"));
       
        // Add 1 other entry to table and evict 1
        ctx.add(new HttpField("foo","bar"));
       
        // name is evicted
        assertNull(ctx.get("name"));
    }
View Full Code Here

    public void testGetAddStatic()
    {
        HpackContext ctx = new HpackContext(4096);

        // Look for the field.  Should find static version.
        HttpField methodGet = new HttpField(":method","GET");
        assertEquals(methodGet,ctx.get(methodGet).getHttpField());
        assertTrue(ctx.get(methodGet).isStatic());
       
        // Add static version to header table
        Entry e0=ctx.add(ctx.get(methodGet).getHttpField());
View Full Code Here

   
    @Test
    public void testGetAddStaticName()
    {
        HpackContext ctx = new HpackContext(4096);
        HttpField methodOther = new HttpField(":method","OTHER");

        // Look for the field by name.  Should find static version.
        assertEquals(":method",ctx.get(":method").getHttpField().getName());
        assertTrue(ctx.get(":method").isStatic());
       
View Full Code Here

    public void testIndexes()
    {
        // Only enough space for 5 entries
        HpackContext ctx = new HpackContext(38*5);
       
        HttpField methodPost = new HttpField(":method","POST");
        HttpField[] field =
        {
           new HttpField("fo0","b0r"),
           new HttpField("fo1","b1r"),
           new HttpField("fo2","b2r"),
           new HttpField("fo3","b3r"),
           new HttpField("fo4","b4r"),
           new HttpField("fo5","b5r"),
           new HttpField("fo6","b6r"),
           new HttpField("fo7","b7r"),
           new HttpField("fo8","b8r"),
           new HttpField("fo9","b9r"),
           new HttpField("foA","bAr"),
        };
       
        Entry[] entry = new Entry[100];
       
        // Lookup the index of a static field
        assertEquals(0,ctx.size());
        assertEquals(":authority",ctx.get(1).getHttpField().getName());
        assertEquals(3,ctx.index(ctx.get(methodPost)));
        assertEquals(methodPost,ctx.get(3).getHttpField());
        assertEquals("www-authenticate",ctx.get(61).getHttpField().getName());
        assertEquals(null,ctx.get(62));
       
        // Add a single entry 
        entry[0]=ctx.add(field[0]);
       
        // Check new entry is 62
        assertEquals(1,ctx.size());
        assertEquals(62,ctx.index(entry[0]));
        assertEquals(entry[0],ctx.get(62));
       
        // and statics have moved up 0
        assertEquals(":authority",ctx.get(1+0).getHttpField().getName());
        assertEquals(3+0,ctx.index(ctx.get(methodPost)));
        assertEquals(methodPost,ctx.get(3+0).getHttpField());
        assertEquals("www-authenticate",ctx.get(61+0).getHttpField().getName());
        assertEquals(null,ctx.get(62+0+ctx.size()));
       

        // Add 4 more entries
        for (int i=1;i<=4;i++
            entry[i]=ctx.add(field[i]);

        // Check newest entry is at 62 oldest at 66
        assertEquals(5,ctx.size());
        int index=66;
        for (int i=0;i<=4;i++
        {
            assertEquals(index,ctx.index(entry[i]));
            assertEquals(entry[i],ctx.get(index));
            index--;
        }

        // and statics have moved up 0
        assertEquals(":authority",ctx.get(1+0).getHttpField().getName());
        assertEquals(3+0,ctx.index(ctx.get(methodPost)));
        assertEquals(methodPost,ctx.get(3+0).getHttpField());
        assertEquals("www-authenticate",ctx.get(61+0).getHttpField().getName());
        assertEquals(null,ctx.get(62+0+ctx.size()));
       
        // add 1 more entry and this should cause an eviction!
        entry[5]=ctx.add(field[5]);

        // Check newest entry is at 1 oldest at 5
        index=66;
        for (int i=1;i<=5;i++
        {
            assertEquals(index,ctx.index(entry[i]));
            assertEquals(entry[i],ctx.get(index));
            index--;
        }
        // check entry 0 evicted
        assertNull(ctx.get(field[0]));
        assertEquals(0,ctx.index(entry[0]));

        // and statics have moved up 0
        assertEquals(":authority",ctx.get(1+0).getHttpField().getName());
        assertEquals(3+0,ctx.index(ctx.get(methodPost)));
        assertEquals(methodPost,ctx.get(3+0).getHttpField());
        assertEquals("www-authenticate",ctx.get(61+0).getHttpField().getName());
        assertEquals(null,ctx.get(62+0+ctx.size()));
       
        // Add 4 more entries
        for (int i=6;i<=9;i++
            entry[i]=ctx.add(field[i]);
       
        // Check newest entry is at 1 oldest at 5
        index=66;
        for (int i=5;i<=9;i++
        {
            assertEquals(index,ctx.index(entry[i]));
            assertEquals(entry[i],ctx.get(index));
            index--;
        }
        // check entry 0-4 evicted
        for (int i=0;i<=4;i++)
        {
            assertNull(ctx.get(field[i]));
            assertEquals(0,ctx.index(entry[i]));
        }
       

        // Add new entries enough so that array queue will wrap
        for (int i=10;i<=52;i++)
            entry[i]=ctx.add(new HttpField("n"+i,"v"+i));

        index=66;
        for (int i=48;i<=52;i++
        {
            assertEquals(index,ctx.index(entry[i]));
View Full Code Here

    @Test
    public void testResize()
    {
        // Only enough space for 5 entries
        HpackContext ctx = new HpackContext(38*5);
        HttpField methodPost = new HttpField(":method","POST");
       
        HttpField[] field =
        {
           new HttpField("fo0","b0r"),
           new HttpField("fo1","b1r"),
           new HttpField("fo2","b2r"),
           new HttpField("fo3","b3r"),
           new HttpField("fo4","b4r"),
           new HttpField("fo5","b5r"),
           new HttpField("fo6","b6r"),
           new HttpField("fo7","b7r"),
           new HttpField("fo8","b8r"),
           new HttpField("fo9","b9r"),
           new HttpField("foA","bAr"),
        };
        Entry[] entry = new Entry[field.length];
       
        // Add 5 entries
        for (int i=0;i<=4;i++
View Full Code Here

        assertEquals("content-length",ctx.get("content-length").getHttpField().getName());
        assertEquals("content-length",ctx.get("Content-Length").getHttpField().getName());
        assertTrue(ctx.get("Content-Length").isStatic());
        assertTrue(ctx.get("Content-Type").isStatic());
       
        ctx.add(new HttpField("Wibble","Wobble"));
        assertEquals("Wibble",ctx.get("wibble").getHttpField().getName());
        assertEquals("Wibble",ctx.get("Wibble").getHttpField().getName());
       
    }
View Full Code Here

            if (request instanceof Request)
            {
                HttpFields fields = ((Request)request).getHttpFields();
                for (int i=fields.size();i-->0;)
                {
                    HttpField field=fields.getField(i);
                    if (field.getHeader() != null)
                    {
                        switch (field.getHeader())
                        {
                            case IF_MATCH:
                                ifm=field.getValue();
                                break;
                            case IF_NONE_MATCH:
                                ifnm=field.getValue();
                                break;
                            case IF_MODIFIED_SINCE:
                                ifms=field.getValue();
                                break;
                            case IF_UNMODIFIED_SINCE:
                                ifums=DateParser.parseDate(field.getValue());
                                break;
                            default:
                        }
                    }
                }
View Full Code Here

        }

        // If not HTTP/2, then we must check the accept encoding header
        if (request.getHttpVersion()!=HttpVersion.HTTP_2)
        {
            HttpField accept = request.getHttpFields().getField(HttpHeader.ACCEPT_ENCODING);

            if (accept==null)
            {
                LOG.debug("{} excluded !accept {}",this,request);
                return null;
            }
            boolean gzip = accept.contains("gzip");

            if (!gzip)
            {
                LOG.debug("{} excluded not gzip accept {}",this,request);
                return null;
View Full Code Here

TOP

Related Classes of org.eclipse.jetty.http.HttpField

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.