Re: How to set up a proxy test framework?

Michael Toomim <toomim@gmail.com> Thu, 25 July 2024 08:23 UTC

Received: by ietfa.amsl.com (Postfix) id 4E96EC1CAF3B; Thu, 25 Jul 2024 01:23:18 -0700 (PDT)
Delivered-To: ietfarch-httpbisa-archive-bis2juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4DE1DC1CAF38 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 01:23:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.858
X-Spam-Level:
X-Spam-Status: No, score=-2.858 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="i7uvSnX4"; dkim=pass (2048-bit key) header.d=w3.org header.b="EakFKlxY"; dkim=pass (2048-bit key) header.d=gmail.com header.b="AOA1Rqog"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hK3Z7LhGJntl for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 01:23:14 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0AAD4C110D1E for <httpbisa-archive-bis2Juki@ietf.org>; Thu, 25 Jul 2024 01:23:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:In-Reply-To:From:References:Cc:To:MIME-Version:Date: Message-ID:Content-Type:Reply-To; bh=5oiOXMN+9edyII+noiTyY8LtydPBENGAGnbcWHMwWmw=; b=i7uvSnX451Cz0fYkHxygGHsuIO dyt3zhM/RfBfWrDx7TPLzu93kegG6+yAqmT81X4uW1+8cl649khYPaZb1oyJYDVJEmwu4JggQ9wDk Z9bpq7Rin2CwiVE5j9ZlLO/rhq1w6JqEJGLbMt0DJ+SOl/kU/r/5nNMBuEGRdVqhcIpAAsUghZ+xv gURIX1Ceu1wCN77zMyqr3sX8frYwCYRL/qgBI8HGu3E106+/kRt3N0NyU1bMGesupBSbW28DcxEoH a11Br0AVt1ptbnGWgryOW1wfHPqn/8FV+fGZVHq8xHFDyfdMVQQQTlqFADRMzACwuGthfHcSqxzZI MgLJFpgw==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sWtkA-006U5a-1K for ietf-http-wg-dist@listhub.w3.org; Thu, 25 Jul 2024 08:22:34 +0000
Resent-Date: Thu, 25 Jul 2024 08:22:34 +0000
Resent-Message-Id: <E1sWtkA-006U5a-1K@mab.w3.org>
Received: from ip-10-0-0-144.ec2.internal ([10.0.0.144] helo=pan.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sWtk8-006U4d-1k for ietf-http-wg@listhub.w3.internal; Thu, 25 Jul 2024 08:22:32 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Content-Type:Reply-To; bh=5oiOXMN+9edyII+noiTyY8LtydPBENGAGnbcWHMwWmw=; t=1721895752; x=1722759752; b=EakFKlxYhdgo+4OvjnO2LPwRvEdecVBW/K8mKfhuQ3iyW8Xmu/PkqCkRqufsO0i8BLDefpIXJDJ 2cbisZTvIeWYT2x0bnRVrr6smfEY9lOF9masWgWBjm31HUlINuOofrKUcrAONFoxxNVkYpaygzRTL 7M5ubAUgeRPKVdrPksvHHtDA79yaLuya/D9hbTvA7syrmlgvVfJrq2ryKFm/CKDkNM11zo6Dch19c ya3j6WkBb88FELabbVAuZiRU2VRg4QfRFa8FAoUkkY4K5KJxgCSOnMNCFljET3nWUi7zU/7cxjDeW n+HIOFFpytT1HCbW6MTYzfeaxorm7JoimJKQ==;
Received-SPF: pass (pan.w3.org: domain of gmail.com designates 2607:f8b0:4864:20::c2f as permitted sender) client-ip=2607:f8b0:4864:20::c2f; envelope-from=toomim@gmail.com; helo=mail-oo1-xc2f.google.com;
Received: from mail-oo1-xc2f.google.com ([2607:f8b0:4864:20::c2f]) by pan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sWtk7-00CjCw-2Z for ietf-http-wg@w3.org; Thu, 25 Jul 2024 08:22:32 +0000
Received: by mail-oo1-xc2f.google.com with SMTP id 006d021491bc7-5cebd3bd468so423643eaf.1 for <ietf-http-wg@w3.org>; Thu, 25 Jul 2024 01:22:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721895748; x=1722500548; darn=w3.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=5oiOXMN+9edyII+noiTyY8LtydPBENGAGnbcWHMwWmw=; b=AOA1Rqogh9e/dRpH5g5x+EjyaxxwuJUgG2btd09vvvAN8/14vA0SWvoyTwaL+US7cK XwPOTT+Kb4P1IplBEnkf1Yf7bEAGkHXf4en1WberE0SLxYPGzlgPzc0qf4TIoKQtq8TL 8H1l1+co6NMWRvBDRZEaK2YcAq6kARuTNRxXL8ElRBaIisGz+EWHZuMr1dDtCwLhJ7AJ eLGiGTzbNM5p1kYqJAnlJAfjfEu/fITwdqaHD/yXAySzicV7zjmhelRTtJGPwfYOLJ4C QjwW9YbYYuHqvgOl29G2MksD2vzjgREwqq5nDt8vBxl9Ct8NWby3uJql526zOWE21zoB +7Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721895748; x=1722500548; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5oiOXMN+9edyII+noiTyY8LtydPBENGAGnbcWHMwWmw=; b=bsZrhY6wf15Q3cnvPvjMD/yKxQjg/cV3IKHVYO7tdeTsxbujM/YHdvwKQabsg1vP58 EihhJDds7LtC0ZCPjM8SkVAHdYAZFPaKPZkiXAGK/vF/daoySKFKQuTdcU5Z7X5MarrK hWLpPr32yrzHDP1xDObRx5Psa253ZVhzqQzk5UtCb9xycxQwNhLq03EsRLTyMIXJerme 86MalN9kl5PJr7IL1px5UIXIF6yVu+FpyP9fvfwUvPJrcvr1uF2rWyyQgiPT42RbBqnZ HtLxSL5agbnyiAHDNCqCIyMdl7n8LrNfknZ3hxDev+ZZOOG3mHqJ36i5/SzjIpLXT0z+ UBTg==
X-Gm-Message-State: AOJu0YxTKINR3VbFf37LoaY5F3rLGbyhMkEK+rFNhYrsaJ28SYGCx89h QkFbSX2wq98FgM78okDoNmeEs3FQb5fR/ejz4ABMzqYKraUUn/ip
X-Google-Smtp-Source: AGHT+IEq2j7+XavnuEKezPX3ofPSQdxjRwnE3KkcsC9L7v+d32k3YQv4/ejLTDdS0RGw/9PWLjoowA==
X-Received: by 2002:a05:6358:440f:b0:1ac:ef3a:cb27 with SMTP id e5c5f4694b2df-1acfb8e9fb1mr165393455d.13.1721895747802; Thu, 25 Jul 2024 01:22:27 -0700 (PDT)
Received: from [172.31.7.130] ([207.194.231.35]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7a9f9ec0cbesm731084a12.64.2024.07.25.01.22.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Jul 2024 01:22:27 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------UcOYrzie0BSFF3uLgk4PDb5f"
Message-ID: <1107f353-31b3-4b31-a989-da084f617a42@gmail.com>
Date: Thu, 25 Jul 2024 01:22:26 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Josh Cohen <joshco@gmail.com>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
References: <240ca61c-e168-4858-9994-2abadb3a1d16@gmail.com> <D07EF2AA-C0CB-496E-ACF2-6F263A7AC9C5@gmail.com>
Content-Language: en-US
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <D07EF2AA-C0CB-496E-ACF2-6F263A7AC9C5@gmail.com>
X-W3C-Hub-DKIM-Status: validation passed: (address=toomim@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: pan.w3.org 1sWtk7-00CjCw-2Z 6c9561095ca8d39c61ac006884ed868b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: How to set up a proxy test framework?
Archived-At: <https://www.w3.org/mid/1107f353-31b3-4b31-a989-da084f617a42@gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52126
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

I just talked to Claude about this, and the two of us came up with a 
cool experiment to run with two Squid proxies that we can set up:

 1. A Squid proxy we've implemented cool Braid versioning features into.
 2. A Squid proxy that's plain vanilla, knowing only legacy HTTP.

This experiment will produce knowledge on:

    1. New Squid Features with Braid Versioning:

      * Version-aware caching: Store and serve multiple versions of
        resources efficiently
      * Granular version control: Retrieve specific historical versions
        of content
      * Optimized updates: Support for incremental and partial content
        updates
      * Enhanced collaboration: Enable distributed editing capabilities
        directly through HTTP
      * Improved cache consistency: Better handling of race conditions
        and concurrent modifications

    2. Backwards-Compatibility:

      * Header handling: How legacy proxies manage new Braid-specific
        headers
      * Caching behavior: Impact on existing caching mechanisms when
        version information is present
      * Performance implications: Overhead introduced by version-related
        data in legacy systems
      * Protocol degradation: How versioned requests/responses behave
        when passing through non-Braid-aware infrastructure
      * Potential pitfalls: Identify any unintended consequences or
        breakages in existing proxy functionalities

Oh, and Claude also says he welcomes any feedback or suggestions from 
the group.

This discussion has been very generative already! Thank you!

Michael

On 7/24/24 8:22 PM, Josh Cohen wrote:
> Not sure about a proxy framework per se. however when i need to do 
> simple proxy testing I use squid.
>
> https://www.squid-cache.org/ 
> <https://www.squid-cache.org/#:~:text=squid%20:%20Optimising%20Web%20Delivery,the%20best%20possible%20web%20access.>
>
> Sent from my iPhone
>
>> On Jul 24, 2024, at 19:16, Michael Toomim <toomim@gmail.com> wrote:
>>
>> 
>>
>> Thanks everyone for your feedback during today's versioning talk 
>> <https://datatracker.ietf.org/meeting/120/materials/slides-120-httpbis-versioning-for-http-resources-00.pdf>!
>>
>> On slides 10 and 11, Mark Nottingham keenly pointed out some issues 
>> we'll encounter with proxies. I want to set up a test framework to 
>> help find and validate a solution. Has anyone set up a such a proxy 
>> test framework before?
>>
>> I think my first step should be to list some scenarios or softwares 
>> to test with. I don't have a lot of experience yet in proxyland. I'd 
>> love advice!
>>
>> Thanks!
>>
>> Michael
>>