{"id":8295,"date":"2004-12-05T13:05:25","date_gmt":"2004-12-05T11:05:25","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/2004\/12\/05\/rfc-3875-the-common-gateway-interface-cgi-version-11\/"},"modified":"2005-04-22T06:07:15","modified_gmt":"2005-04-22T03:07:15","slug":"rfc-3875-the-common-gateway-interface-cgi-version-11","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2004\/12\/05\/rfc-3875-the-common-gateway-interface-cgi-version-11\/","title":{"rendered":"RFC 3875 &#8211; The Common Gateway Interface (CGI) Version 1.1"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>It seems that until very recently (October 2004) there was no RFC covering CGI.  Now there is &#8211; RFC 3875 &#8211; <a href=\"http:\/\/www.rfc-archive.org\/getrfc.php?rfc=3875\">The Common Gateway Interface (CGI) Version 1.1<\/a>.  It explains how CGI scripts should be called and executed, what they should be given and what they should return.  There is nothing new or anything we didn&#8217;t know before, but it is good to have it formalized and compiled into RFC.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>It seems that until very recently (October 2004) there was no RFC covering CGI. Now there is &#8211; RFC 3875 &#8211; The Common Gateway Interface (CGI) Version 1.1. It explains how CGI scripts should be called and executed, what they should be given and what they should return. There is nothing new or anything we &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2004\/12\/05\/rfc-3875-the-common-gateway-interface-cgi-version-11\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">RFC 3875 &#8211; The Common Gateway Interface (CGI) Version 1.1<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,62],"tags":[],"keyring_services":[],"class_list":["post-8295","post","type-post","status-publish","format-standard","hentry","category-general","category-technology"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":26272,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/07\/24\/httpoxy-a-cgi-application-vulnerability-for-php-go-python-and-others\/","url_meta":{"origin":8295,"position":0},"title":"httpoxy &#8211; a CGI application vulnerability for PHP, Go, Python and others","author":"Leonid Mamchenkov","date":"July 24, 2016","format":false,"excerpt":"httpoxy is a set of vulnerabilities that affect application code running in CGI, or CGI-like environments. It comes down to a simple namespace conflict: RFC 3875 (CGI) puts the HTTP Proxy header from a request into the environment variables as HTTP_PROXY HTTP_PROXY is a popular environment variable used to configure\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"httpoxy","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/07\/httpoxy-500x130.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":22204,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/16\/http1-1-just-got-a-major-update\/","url_meta":{"origin":8295,"position":1},"title":"HTTP\/1.1 just got a major update","author":"Leonid Mamchenkov","date":"July 16, 2014","format":"link","excerpt":"HTTP\/1.1 just got a major update - somehow I missed this last month. The IETF just published several new RFCs that update HTTP\/1.1: RFC 7230: Message Syntax and Routing RFC 7231: Semantics and Content RFC 7232: Conditional Requests RFC 7233: Range Request RFC 7234: Caching RFC 7235: Authentication RFC 7236:\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":15430,"url":"https:\/\/mamchenkov.net\/wordpress\/2011\/08\/25\/rfc-2142-mailbox-names-for-common-services-roles-and-functions\/","url_meta":{"origin":8295,"position":2},"title":"RFC 2142 : Mailbox names for common services, roles and functions","author":"Leonid Mamchenkov","date":"August 25, 2011","format":false,"excerpt":"I've always relied on my mail servers having a complete and correct \/etc\/aliases file with all the necessary aliases. \u00a0I never even thought about who puts them there and why. \u00a0It was just one of those many things that just work. \u00a0Today I discovered that there is actually an RFC\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27971,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/08\/internet-protocol-version-10-ipv10\/","url_meta":{"origin":8295,"position":3},"title":"Internet Protocol version 10 (IPv10)","author":"Leonid Mamchenkov","date":"September 8, 2017","format":false,"excerpt":"Heard enough about IPv4 and IPv6 yet? \u00a0Good. \u00a0Here's something new for you - IPv10. IP version 10 (IPv10) is a new version of the Internet Protocol, designed to allow IP version 6 [RFC-2460] to communicate to IP version 4 (IPv4) [RFC-791] and vice versa.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27542,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/29\/rfc-http-299-disappointed\/","url_meta":{"origin":8295,"position":4},"title":"RFC : HTTP 299 Disappointed","author":"Leonid Mamchenkov","date":"April 29, 2017","format":false,"excerpt":"https:\/\/twitter.com\/acathrow\/status\/857705132913561600 This is ... funny.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28237,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/21\/rrule-will-make-you-hate-calendars\/","url_meta":{"origin":8295,"position":5},"title":"RRULE will make you hate calendars","author":"Leonid Mamchenkov","date":"November 21, 2017","format":false,"excerpt":"Calendars are not the simplest applications by far.\u00a0 There are many different features, lots of different implementations, multitude of standards (just a few being RFC 2445, which was obsoleted by RFC 5545, which was updated by RFC 5546, RFC 6868, RFC 7529, RFC 7953, RFC 7986) , and plenty of\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/11\/rrule-500x243.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/8295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=8295"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/8295\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=8295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=8295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=8295"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=8295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}