<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: mark-nottingham</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/mark-nottingham.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2022-11-01T03:15:05+00:00</updated><author><name>Simon Willison</name></author><entry><title>RFC 7807: Problem Details for HTTP APIs</title><link href="https://simonwillison.net/2022/Nov/1/rfc-7807/#atom-tag" rel="alternate"/><published>2022-11-01T03:15:05+00:00</published><updated>2022-11-01T03:15:05+00:00</updated><id>https://simonwillison.net/2022/Nov/1/rfc-7807/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://datatracker.ietf.org/doc/draft-ietf-httpapi-rfc7807bis/"&gt;RFC 7807: Problem Details for HTTP APIs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This RFC has been brewing for quite a while, and is currently in last call (ends 2022-11-03). I’m designing the JSON error messages for Datasette at the moment so this could not be more relevant for me.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://blog.frankel.ch/structured-errors-http-apis/"&gt;Nicolas Fränkel&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/errors"&gt;errors&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rfc"&gt;rfc&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/standards"&gt;standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="errors"/><category term="http"/><category term="json"/><category term="mark-nottingham"/><category term="rfc"/><category term="standards"/></entry><entry><title>How to Read an RFC</title><link href="https://simonwillison.net/2018/Aug/6/how-read-rfc/#atom-tag" rel="alternate"/><published>2018-08-06T22:38:21+00:00</published><updated>2018-08-06T22:38:21+00:00</updated><id>https://simonwillison.net/2018/Aug/6/how-read-rfc/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.mnot.net/blog/2018/07/31/read_rfc"&gt;How to Read an RFC&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
An extremely useful guide to reading RFCs by Mark Nottingham. I didn’t know most of the stuff in here.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rfc"&gt;rfc&lt;/a&gt;&lt;/p&gt;



</summary><category term="mark-nottingham"/><category term="rfc"/></entry><entry><title>On HTTP Load Testing</title><link href="https://simonwillison.net/2011/May/18/loadtesting/#atom-tag" rel="alternate"/><published>2011-05-18T10:17:00+00:00</published><updated>2011-05-18T10:17:00+00:00</updated><id>https://simonwillison.net/2011/May/18/loadtesting/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2011/05/18/http_benchmark_rules"&gt;On HTTP Load Testing&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Mark Nottingham explains that running good HTTP benchmarks means understanding available network bandwidth, using dedicated physical hardware, testing at progressively higher loads and a whole lot more.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/load-testing"&gt;load-testing&lt;/a&gt;&lt;/p&gt;



</summary><category term="http"/><category term="mark-nottingham"/><category term="recovered"/><category term="load-testing"/></entry><entry><title>HTTP + Politics = ?</title><link href="https://simonwillison.net/2009/Dec/15/australia/#atom-tag" rel="alternate"/><published>2009-12-15T15:36:20+00:00</published><updated>2009-12-15T15:36:20+00:00</updated><id>https://simonwillison.net/2009/Dec/15/australia/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2009/12/16/http_au"&gt;HTTP + Politics = ?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Mark Nottingham ponders the technical implications of Australia’s decision to apply a filter to all internet traffic. Australia is large enough (and far enough away from the northern hemisphere) that the speed of light is a performance issue, but filtering technologies play extremely poorly with optimisation technologies such as HTTP pipelining and Google’s SPDY proposal.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/australia"&gt;australia&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/filtering"&gt;filtering&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pipelining"&gt;pipelining&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/politics"&gt;politics&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/spdy"&gt;spdy&lt;/a&gt;&lt;/p&gt;



</summary><category term="australia"/><category term="filtering"/><category term="google"/><category term="http"/><category term="mark-nottingham"/><category term="performance"/><category term="pipelining"/><category term="politics"/><category term="spdy"/></entry><entry><title>Traffic Server</title><link href="https://simonwillison.net/2009/Nov/1/trafficserver/#atom-tag" rel="alternate"/><published>2009-11-01T12:15:27+00:00</published><updated>2009-11-01T12:15:27+00:00</updated><id>https://simonwillison.net/2009/Nov/1/trafficserver/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2009/10/30/traffic_server"&gt;Traffic Server&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Mark Nottingham explains the release of Traffic Server, a new Apache Incubator open source project donated by Yahoo! using code originally developed at Inktomi around a decade ago. Traffic Server is a HTTP proxy/cache, similar to Squid and Varnish (though Traffic Server acts as both a forward and reverse proxy, whereas Varnish only handles reverse).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apache"&gt;apache&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cache"&gt;cache&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/inktomi"&gt;inktomi&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/proxies"&gt;proxies&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/squid"&gt;squid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/trafficserver"&gt;trafficserver&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/varnish"&gt;varnish&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;&lt;/p&gt;



</summary><category term="apache"/><category term="cache"/><category term="http"/><category term="inktomi"/><category term="mark-nottingham"/><category term="open-source"/><category term="proxies"/><category term="squid"/><category term="trafficserver"/><category term="varnish"/><category term="yahoo"/></entry><entry><title>The Resource Expert Droid</title><link href="https://simonwillison.net/2009/Jun/25/red/#atom-tag" rel="alternate"/><published>2009-06-25T10:06:10+00:00</published><updated>2009-06-25T10:06:10+00:00</updated><id>https://simonwillison.net/2009/Jun/25/red/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2009/06/25/RED"&gt;The Resource Expert Droid&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Like the HTML Validator but for your server’s HTTP headers—extremely useful.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/headers"&gt;headers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/resourceexpertdroid"&gt;resourceexpertdroid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/validator"&gt;validator&lt;/a&gt;&lt;/p&gt;



</summary><category term="headers"/><category term="http"/><category term="mark-nottingham"/><category term="resourceexpertdroid"/><category term="validator"/></entry><entry><title>Counting the ways that rev="canonical" hurts the Web</title><link href="https://simonwillison.net/2009/Apr/14/mnotus/#atom-tag" rel="alternate"/><published>2009-04-14T14:11:58+00:00</published><updated>2009-04-14T14:11:58+00:00</updated><id>https://simonwillison.net/2009/Apr/14/mnotus/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2009/04/14/rev_canonical_bad"&gt;Counting the ways that rev=&amp;quot;canonical&amp;quot; hurts the Web&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Mark Nottingham complains about misapplied trust (a page can falsely claim to be the canonical URL for another page), the easy confusion between rev and rel and the lack of discussion with relevant communities.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/revcanonical"&gt;revcanonical&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/standards"&gt;standards&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;&lt;/p&gt;



</summary><category term="mark-nottingham"/><category term="revcanonical"/><category term="standards"/><category term="urls"/></entry><entry><title>OAuth in Minneapolis</title><link href="https://simonwillison.net/2008/Nov/20/mnotus/#atom-tag" rel="alternate"/><published>2008-11-20T18:55:21+00:00</published><updated>2008-11-20T18:55:21+00:00</updated><id>https://simonwillison.net/2008/Nov/20/mnotus/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2008/11/21/oauth"&gt;OAuth in Minneapolis&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
OAuth looks like it’s on track for an IETF Working Group.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ietf"&gt;ietf&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oauth"&gt;oauth&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/standards"&gt;standards&lt;/a&gt;&lt;/p&gt;



</summary><category term="ietf"/><category term="mark-nottingham"/><category term="oauth"/><category term="standards"/></entry><entry><title>HTTP Cache Channels</title><link href="https://simonwillison.net/2008/Jan/4/http/#atom-tag" rel="alternate"/><published>2008-01-04T12:48:51+00:00</published><updated>2008-01-04T12:48:51+00:00</updated><id>https://simonwillison.net/2008/Jan/4/http/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/cache_channels/"&gt;HTTP Cache Channels&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Interesting extension to the HTTP caching model by Mark Nottingham: caches can be told to subscribe to an Atom feed which alerts them to cached data that has gone stale. Group invalidation is also supported.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.mnot.net/blog/2008/01/04/cache_channels"&gt;Mark Nottingham&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/atom"&gt;atom&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cachechannels"&gt;cachechannels&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/caching"&gt;caching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/squid"&gt;squid&lt;/a&gt;&lt;/p&gt;



</summary><category term="atom"/><category term="cachechannels"/><category term="caching"/><category term="http"/><category term="mark-nottingham"/><category term="squid"/></entry><entry><title>Two HTTP Caching Extensions</title><link href="https://simonwillison.net/2007/Dec/12/mnotus/#atom-tag" rel="alternate"/><published>2007-12-12T11:23:10+00:00</published><updated>2007-12-12T11:23:10+00:00</updated><id>https://simonwillison.net/2007/Dec/12/mnotus/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2007/12/12/stale"&gt;Two HTTP Caching Extensions&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
stale-while-revalidate serves cached content even while a refresh has been triggered and is currently being pulled in to the cache; stale-if-error serves cached content if a service has gone down.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/caching"&gt;caching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/squid"&gt;squid&lt;/a&gt;&lt;/p&gt;



</summary><category term="caching"/><category term="http"/><category term="mark-nottingham"/><category term="squid"/></entry><entry><title>ETags, ETags, ETags</title><link href="https://simonwillison.net/2007/Aug/7/mnotus/#atom-tag" rel="alternate"/><published>2007-08-07T14:51:31+00:00</published><updated>2007-08-07T14:51:31+00:00</updated><id>https://simonwillison.net/2007/Aug/7/mnotus/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2007/08/07/etags"&gt;ETags, ETags, ETags&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
They’re no magic bullet.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/etags"&gt;etags&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;&lt;/p&gt;



</summary><category term="etags"/><category term="http"/><category term="mark-nottingham"/></entry><entry><title>The State of Proxy Caching</title><link href="https://simonwillison.net/2007/Jun/21/mnot/#atom-tag" rel="alternate"/><published>2007-06-21T14:18:50+00:00</published><updated>2007-06-21T14:18:50+00:00</updated><id>https://simonwillison.net/2007/Jun/21/mnot/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2007/06/20/proxy_caching"&gt;The State of Proxy Caching&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
If you’ve always wondered exactly what intermediate proxies are going to do to your carefully constructed Web application, here’s your answer.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/caching"&gt;caching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/proxies"&gt;proxies&lt;/a&gt;&lt;/p&gt;



</summary><category term="caching"/><category term="http"/><category term="mark-nottingham"/><category term="proxies"/></entry><entry><title>mnot: Vendor-pires</title><link href="https://simonwillison.net/2006/May/11/mnot/#atom-tag" rel="alternate"/><published>2006-05-11T15:45:13+00:00</published><updated>2006-05-11T15:45:13+00:00</updated><id>https://simonwillison.net/2006/May/11/mnot/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2006/05/10/vendors"&gt;mnot: Vendor-pires&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
WS-* vendors and vampires.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.intertwingly.net/blog/2006/05/11/HTTP-2-0"&gt;Sam Ruby&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;&lt;/p&gt;



</summary><category term="mark-nottingham"/></entry><entry><title>Ubiquitious Fragment Identifiers</title><link href="https://simonwillison.net/2004/May/30/ubiquitious/#atom-tag" rel="alternate"/><published>2004-05-30T09:06:00+00:00</published><updated>2004-05-30T09:06:00+00:00</updated><id>https://simonwillison.net/2004/May/30/ubiquitious/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mnot.net/blog/2004/05/30/fragid_redux"&gt;Ubiquitious Fragment Identifiers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
mnot reveals his ID anchors using CSS generated content.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mark-nottingham"&gt;mark-nottingham&lt;/a&gt;&lt;/p&gt;



</summary><category term="mark-nottingham"/></entry></feed>