This file is indexed.

/usr/share/doc/racket/net/url.html is in racket-doc 6.7-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>2&nbsp;URLs and HTTP</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9660;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Net:<span class="mywbr"> &nbsp;</span> Networking Libraries</a></td></tr></table></div><div class="tocviewsublisttop" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="http-client.html" class="tocviewlink" data-pltdoc="x">HTTP Client</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">URLs and HTTP</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="uri-codec.html" class="tocviewlink" data-pltdoc="x">URI Codec:<span class="mywbr"> &nbsp;</span> Encoding and Decoding URIs</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="ftp.html" class="tocviewlink" data-pltdoc="x">FTP:<span class="mywbr"> &nbsp;</span> Client</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="sendurl.html" class="tocviewlink" data-pltdoc="x">Send URL:<span class="mywbr"> &nbsp;</span> Opening a Web Browser</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="smtp.html" class="tocviewlink" data-pltdoc="x">SMTP:<span class="mywbr"> &nbsp;</span> Sending E-<wbr></wbr>Mail</a></td></tr><tr><td align="right">7&nbsp;</td><td><a href="sendmail.html" class="tocviewlink" data-pltdoc="x"><span class="stt">sendmail</span>:<span class="mywbr"> &nbsp;</span> Sending E-<wbr></wbr>Mail</a></td></tr><tr><td align="right">8&nbsp;</td><td><a href="head.html" class="tocviewlink" data-pltdoc="x">Headers:<span class="mywbr"> &nbsp;</span> Parsing and Constructing</a></td></tr><tr><td align="right">9&nbsp;</td><td><a href="unihead.html" class="tocviewlink" data-pltdoc="x">Header Field Encoding</a></td></tr><tr><td align="right">10&nbsp;</td><td><a href="imap.html" class="tocviewlink" data-pltdoc="x">IMAP:<span class="mywbr"> &nbsp;</span> Reading Mail</a></td></tr><tr><td align="right">11&nbsp;</td><td><a href="pop3.html" class="tocviewlink" data-pltdoc="x">POP3:<span class="mywbr"> &nbsp;</span> Reading Mail</a></td></tr><tr><td align="right">12&nbsp;</td><td><a href="mime.html" class="tocviewlink" data-pltdoc="x">MIME:<span class="mywbr"> &nbsp;</span> Decoding Internet Data</a></td></tr><tr><td align="right">13&nbsp;</td><td><a href="base64.html" class="tocviewlink" data-pltdoc="x">Base 64:<span class="mywbr"> &nbsp;</span> Encoding and Decoding</a></td></tr><tr><td align="right">14&nbsp;</td><td><a href="qp.html" class="tocviewlink" data-pltdoc="x">Quoted-<wbr></wbr>Printable:<span class="mywbr"> &nbsp;</span> Encoding and Decoding</a></td></tr><tr><td align="right">15&nbsp;</td><td><a href="dns.html" class="tocviewlink" data-pltdoc="x">DNS:<span class="mywbr"> &nbsp;</span> Domain Name Service Queries</a></td></tr><tr><td align="right">16&nbsp;</td><td><a href="nntp.html" class="tocviewlink" data-pltdoc="x">NNTP:<span class="mywbr"> &nbsp;</span> Newsgroup Protocol</a></td></tr><tr><td align="right">17&nbsp;</td><td><a href="tcp.html" class="tocviewlink" data-pltdoc="x">TCP:<span class="mywbr"> &nbsp;</span> Unit and Signature</a></td></tr><tr><td align="right">18&nbsp;</td><td><a href="tcp-redirect.html" class="tocviewlink" data-pltdoc="x">TCP Redirect:<span class="mywbr"> &nbsp;</span> <span class="RktSym"><span class="RktStxLink">tcp^</span></span> via Channels</a></td></tr><tr><td align="right">19&nbsp;</td><td><a href="ssl-tcp-unit.html" class="tocviewlink" data-pltdoc="x">SSL Unit:<span class="mywbr"> &nbsp;</span> <span class="RktSym"><span class="RktStxLink">tcp^</span></span> via SSL</a></td></tr><tr><td align="right">20&nbsp;</td><td><a href="cgi.html" class="tocviewlink" data-pltdoc="x">CGI Scripts</a></td></tr><tr><td align="right">21&nbsp;</td><td><a href="cookie.html" class="tocviewlink" data-pltdoc="x">Cookie:<span class="mywbr"> &nbsp;</span> Legacy HTTP Client Storage</a></td></tr><tr><td align="right">22&nbsp;</td><td><a href="git-checkout.html" class="tocviewlink" data-pltdoc="x">Git Repository Checkout</a></td></tr><tr><td align="right"></td><td><a href="doc-bibliography.html" class="tocviewlink" data-pltdoc="x">Bibliography</a></td></tr><tr><td align="right"></td><td><a href="doc-index.html" class="tocviewlink" data-pltdoc="x">Index</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_1&quot;);">&#9658;</a></td><td>2&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x">URLs and HTTP</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">2.1&nbsp;</td><td><a href="#%28part._.U.R.L_.Structure%29" class="tocviewlink" data-pltdoc="x">URL Structure</a></td></tr><tr><td align="right">2.2&nbsp;</td><td><a href="#%28part._.U.R.L_.Parsing_.Functions%29" class="tocviewlink" data-pltdoc="x">URL Parsing Functions</a></td></tr><tr><td align="right">2.3&nbsp;</td><td><a href="#%28part._.U.R.L_.Functions%29" class="tocviewlink" data-pltdoc="x">URL Functions</a></td></tr><tr><td align="right">2.4&nbsp;</td><td><a href="#%28part._.U.R.L_.H.T.T.P.S_mode%29" class="tocviewlink" data-pltdoc="x">URL HTTPS mode</a></td></tr><tr><td align="right">2.5&nbsp;</td><td><a href="#%28part._.U.R.L_.Unit%29" class="tocviewlink" data-pltdoc="x">URL Unit</a></td></tr><tr><td align="right">2.6&nbsp;</td><td><a href="#%28part._.U.R.L_.Signature%29" class="tocviewlink" data-pltdoc="x">URL Signature</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">2.1<tt>&nbsp;</tt></span><a href="#%28part._.U.R.L_.Structure%29" class="tocsubseclink" data-pltdoc="x">URL Structure</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">url</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._path%2Fparam%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">path/<span class="mywbr"> &nbsp;</span>param</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2.2<tt>&nbsp;</tt></span><a href="#%28part._.U.R.L_.Parsing_.Functions%29" class="tocsubseclink" data-pltdoc="x">URL Parsing Functions</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-regexp%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">url-<wbr></wbr>regexp</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">string-<wbr></wbr>&gt;url</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._combine-url%2Frelative%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">combine-<wbr></wbr>url/<span class="mywbr"> &nbsp;</span>relative</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._netscape%2Fstring-~3eurl%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">netscape/<span class="mywbr"> &nbsp;</span>string-<wbr></wbr>&gt;url</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3estring%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">url-<wbr></wbr>&gt;string</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._path-~3eurl%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">path-<wbr></wbr>&gt;url</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3epath%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">url-<wbr></wbr>&gt;path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._relative-path-~3erelative-url-string%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">relative-<wbr></wbr>path-<wbr></wbr>&gt;relative-<wbr></wbr>url-<wbr></wbr>string</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._file-url-path-convention-type%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">file-<wbr></wbr>url-<wbr></wbr>path-<wbr></wbr>convention-<wbr></wbr>type</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-url-encode-mode%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">current-<wbr></wbr>url-<wbr></wbr>encode-<wbr></wbr>mode</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2.3<tt>&nbsp;</tt></span><a href="#%28part._.U.R.L_.Functions%29" class="tocsubseclink" data-pltdoc="x">URL Functions</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._head-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">head-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._delete-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">delete-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._options-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">options-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-impure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>impure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._head-impure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">head-<wbr></wbr>impure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._delete-impure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">delete-<wbr></wbr>impure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._options-impure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">options-<wbr></wbr>impure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._post-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">post-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._put-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">put-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._post-impure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">post-<wbr></wbr>impure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._put-impure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">put-<wbr></wbr>impure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._display-pure-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">display-<wbr></wbr>pure-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._purify-port%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">purify-<wbr></wbr>port</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%2Fheaders%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">get-<wbr></wbr>pure-<wbr></wbr>port/<span class="mywbr"> &nbsp;</span>headers</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">http-<wbr></wbr>connection?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._make-http-connection%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">make-<wbr></wbr>http-<wbr></wbr>connection</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection-close%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">http-<wbr></wbr>connection-<wbr></wbr>close</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._call%2Finput-url%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">call/<span class="mywbr"> &nbsp;</span>input-<wbr></wbr>url</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-proxy-servers%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">current-<wbr></wbr>proxy-<wbr></wbr>servers</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._proxiable-url-schemes%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">proxiable-<wbr></wbr>url-<wbr></wbr>schemes</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-no-proxy-servers%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">current-<wbr></wbr>no-<wbr></wbr>proxy-<wbr></wbr>servers</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._proxy-server-for%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">proxy-<wbr></wbr>server-<wbr></wbr>for</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-exception~3f%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">url-<wbr></wbr>exception?</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-sendrecv%2Furl%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">http-<wbr></wbr>sendrecv/<span class="mywbr"> &nbsp;</span>url</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl..rkt%29._tcp-or-tunnel-connect%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">tcp-<wbr></wbr>or-<wbr></wbr>tunnel-<wbr></wbr>connect</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2.4<tt>&nbsp;</tt></span><a href="#%28part._.U.R.L_.H.T.T.P.S_mode%29" class="tocsubseclink" data-pltdoc="x">URL HTTPS mode</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl-connect..rkt%29._current-https-protocol%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">current-<wbr></wbr>https-<wbr></wbr>protocol</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2.5<tt>&nbsp;</tt></span><a href="#%28part._.U.R.L_.Unit%29" class="tocsubseclink" data-pltdoc="x">URL Unit</a></td></tr><tr><td><a href="#%28def._%28%28lib._net%2Furl-unit..rkt%29._url~40%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">url@</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2.6<tt>&nbsp;</tt></span><a href="#%28part._.U.R.L_.Signature%29" class="tocsubseclink" data-pltdoc="x">URL Signature</a></td></tr><tr><td><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url~5e%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">url^</span></span></a></td></tr><tr><td><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url%2Bscheme~5e%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">url+<span class="mywbr"> &nbsp;</span>scheme^</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="http-client.html" title="backward to &quot;1 HTTP Client&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="index.html" title="up to &quot;Net: Networking Libraries&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="uri-codec.html" title="forward to &quot;3 URI Codec: Encoding and Decoding URIs&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div><h3 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;url&quot;">2<tt>&nbsp;</tt><a name="(part._url)"></a><a name="(mod-path._net/url)"></a>URLs and HTTP</h3><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">base</span></span></td></tr></table></div><div class="SIntrapara">The <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a> library provides
utilities to parse and manipulate URIs, as specified in RFC 2396
[<a href="doc-bibliography.html#%28cite._.R.F.C2396%29" data-pltdoc="x">RFC2396</a>], and to use the HTTP protocol.</div></p><p>To access the text of a document from the web, first obtain its URL as
a string. Convert the address into a <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValLink" data-pltdoc="x">url</a></span> structure using
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValLink" data-pltdoc="x">string-&gt;url</a></span>. Then, open the document using
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span> or <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-impure-port%29%29" class="RktValLink" data-pltdoc="x">get-impure-port</a></span>, depending on
whether or not you wish to examine its MIME headers.  At this point,
you have a regular input port with which to process the document, as with
any other file.</p><p>Currently the only supported protocols are <span class="RktVal">"http"</span>,
<span class="RktVal">"https"</span>, and sometimes <span class="RktVal">"file"</span>.</p><p>The <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a> logs information and background-thread
errors to a logger named <span class="RktVal">'</span><span class="RktVal">net/url</span>.</p><h4 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;URL_Structure&quot;">2.1<tt>&nbsp;</tt><a name="(part._.U.R.L_.Structure)"></a><a name="(mod-path._net/url-structs)"></a>URL Structure</h4><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Furl-structs%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-structs</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">base</span></span></td></tr></table></div><div class="SIntrapara">The URL structure types are
provided by the <a href="#%28mod-path._net%2Furl-structs%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-structs</span></a> library, and
re-exported by <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a> and <a href="#%28mod-path._net%2Furl-string%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-string</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="nobreak"><a name="(def._((lib._net/url-structs..rkt)._url-fragment))"></a><a name="(def._((lib._net/url-structs..rkt)._url-query))"></a><a name="(def._((lib._net/url-structs..rkt)._url-path))"></a><a name="(def._((lib._net/url-structs..rkt)._url-path-absolute~3f))"></a><a name="(def._((lib._net/url-structs..rkt)._url-port))"></a><a name="(def._((lib._net/url-structs..rkt)._url-host))"></a><a name="(def._((lib._net/url-structs..rkt)._url-user))"></a><a name="(def._((lib._net/url-structs..rkt)._url-scheme))"></a><a name="(def._((lib._net/url-structs..rkt)._make-url))"></a><a name="(def._((lib._net/url-structs..rkt)._url~3f))"></a><a name="(def._((lib._net/url-structs..rkt)._struct~3aurl))"></a><a name="(def._((lib._net/url-structs..rkt)._url))"></a><span title="Provided from: net/url-structs, net/url-string, net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValDef RktValLink" data-pltdoc="x">url</a></span></span></span></td><td><span class="hspace">&nbsp;</span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">scheme</span></span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">user</span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">host</span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">port</span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">path-absolute?</span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">path</span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">query</span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym">fragment</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._make-url%29%29" class="RktValLink" data-pltdoc="x">make-url</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">scheme</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">user</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">host</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">port</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">path-absolute?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">path</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._path%2Fparam~3f%29%29" class="RktValLink" data-pltdoc="x">path/param?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">query</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._cons%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">cons/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">fragment</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">The basic structure for all URLs, which is explained in RFC 3986
[<a href="doc-bibliography.html#%28cite._.R.F.C3986%29" data-pltdoc="x">RFC3986</a>]. The following diagram illustrates the parts:</div></p><p><table cellspacing="0" cellpadding="0"><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">http://sky@www:801/cgi-bin/finger;xyz?name=shriram;host=nw#top</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">{-1}</span><span class="hspace">&nbsp;&nbsp;&nbsp;</span><span class="stt">{2} {3} {4}{---5---------} {6} {----7-------------} {8}</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt"></span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">1 = scheme, 2 = user, 3 = host, 4 = port,</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">5 = path (two elements),</span><span class="hspace">&nbsp;&nbsp;</span><span class="stt">6 = param (of second path element),</span></p></td></tr><tr><td><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">7 = query, 8 = fragment</span></p></td></tr></table></p><p>The strings inside the <span class="RktSym">user</span>, <span class="RktSym">path</span>, <span class="RktSym">query</span>,
and <span class="RktSym">fragment</span> fields are represented directly as Racket
strings, without URL-syntax-specific quoting. The procedures
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValLink" data-pltdoc="x">string-&gt;url</a></span> and <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3estring%29%29" class="RktValLink" data-pltdoc="x">url-&gt;string</a></span> translate encodings such
as <span class="RktInBG"><span class="hspace"></span><span class="RktIn">%20</span><span class="hspace"></span></span> into spaces and back again.</p><p>By default, query associations are parsed with either <span class="RktInBG"><span class="hspace"></span><span class="RktIn">;</span><span class="hspace"></span></span> or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">&amp;</span><span class="hspace"></span></span> as a separator, and they are generated with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">&amp;</span><span class="hspace"></span></span> as
a separator. The <span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._current-alist-separator-mode%29%29" class="RktValLink" data-pltdoc="x">current-alist-separator-mode</a></span> parameter
adjusts the behavior.</p><p>An empty string at the end of the <span class="RktSym">path</span> list corresponds to a
URL that ends in a slash. For example, the result of
<span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValLink" data-pltdoc="x">string-&gt;url</a></span><span class="stt"> </span><span class="RktVal">"http://racket-lang.org/a/"</span><span class="RktPn">)</span> has a
<span class="RktSym">path</span> field with strings <span class="RktVal">"a"</span> and <span class="RktVal">""</span>, while
the result of <span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValLink" data-pltdoc="x">string-&gt;url</a></span><span class="stt"> </span><span class="RktVal">"http://racket-lang.org/a"</span><span class="RktPn">)</span> has a
<span class="RktSym">path</span> field with only the string <span class="RktVal">"a"</span>.</p><p>When a <span class="RktVal">"file"</span> URL is represented by a <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValLink" data-pltdoc="x">url</a></span> structure,
the <span class="RktSym">path</span> field is mostly a list of path elements. For Unix
paths, the root directory is not included in <span class="RktSym">path</span>; its
presence or absence is implicit in the <span class="RktSym">path-absolute?</span> flag.
For Windows paths, the first element typically represents a drive, but
a UNC path is represented by a first element that is <span class="RktVal">""</span> and
then successive elements complete the drive components that are
separated by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\</span><span class="hspace"></span></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._net/url-structs..rkt)._path/param-param))"></a><a name="(def._((lib._net/url-structs..rkt)._path/param-path))"></a><a name="(def._((lib._net/url-structs..rkt)._make-path/param))"></a><a name="(def._((lib._net/url-structs..rkt)._path/param~3f))"></a><a name="(def._((lib._net/url-structs..rkt)._struct~3apath/param))"></a><a name="(def._((lib._net/url-structs..rkt)._path/param))"></a><span title="Provided from: net/url-structs, net/url-string, net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._path%2Fparam%29%29" class="RktValDef RktValLink" data-pltdoc="x">path/param</a></span></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">path</span><span class="stt"> </span><span class="RktSym">param</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._make-path%2Fparam%29%29" class="RktValLink" data-pltdoc="x">make-path/param</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">path</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">up</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">same</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">param</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A pair that joins a path segment with its params in a URL.</div></p><h4 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;URL_Parsing_Functions&quot;">2.2<tt>&nbsp;</tt><a name="(part._.U.R.L_.Parsing_.Functions)"></a><a name="(mod-path._net/url-string)"></a>URL Parsing Functions</h4><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Furl-string%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-string</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">base</span></span></td></tr></table></div><div class="SIntrapara">The functions used to convert strings and
paths to from URL structure types and back again are provided by the
 <a href="#%28mod-path._net%2Furl-string%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-string</span></a> library, and re-exported by <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._net/url..rkt)._url-regexp))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-regexp%29%29" class="RktValDef RktValLink" data-pltdoc="x">url-regexp</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=regexp.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._regexp%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">regexp?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">A <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=regexp.html%23%2528tech._regexp._value%2529&amp;version=6.7" class="techoutside Sq" data-pltdoc="x"><span class="techinside">regexp value</span></a>
that can be useful for matching url strings. Mostly follows
RFC 3986 [<a href="doc-bibliography.html#%28cite._.R.F.C3986%29" data-pltdoc="x">RFC3986</a>], Appendix B, except for using <span class="stt">*</span> instead of
<span class="stt">+</span> for the scheme part (see <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValLink" data-pltdoc="x">url</a></span>).
</div><div class="SIntrapara"><p class="SHistory">Added in version 6.4.0.7 of package <span class="stt">base</span>.</p></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._string-~3eurl))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValDef RktValLink" data-pltdoc="x">string-&gt;url</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">str</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">str</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-regexp%29%29" class="RktValLink" data-pltdoc="x">url-regexp</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Parses the URL specified by <span class="RktVar">str</span> into a <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValLink" data-pltdoc="x">url</a></span>
struct. The <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValLink" data-pltdoc="x">string-&gt;url</a></span> procedure uses
<span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._form-urlencoded-~3ealist%29%29" class="RktValLink" data-pltdoc="x">form-urlencoded-&gt;alist</a></span> when parsing the query, so it is
sensitive to the <span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._current-alist-separator-mode%29%29" class="RktValLink" data-pltdoc="x">current-alist-separator-mode</a></span> parameter for
determining the association separator.</div></p><p>The contract on <span class="RktVar">str</span> insists that, if the url has a scheme,
then the scheme begins with a letter and consists only of letters,
numbers, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">+</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">-</span><span class="hspace"></span></span>, and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> characters.</p><p>If <span class="RktVar">str</span> starts with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">file:</span><span class="hspace"></span></span> (case-insensitively) and
the value of the <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._file-url-path-convention-type%29%29" class="RktValLink" data-pltdoc="x">file-url-path-convention-type</a></span> parameter is
<span class="RktVal">'</span><span class="RktVal">windows</span>, then special parsing rules apply to accommodate
ill-formed but widely-recognized path encodings:</p><ul><li><p>If <span class="RktInBG"><span class="hspace"></span><span class="RktIn">file:</span><span class="hspace"></span></span> is followed by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">//</span><span class="hspace"></span></span>, a letter, and
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:</span><span class="hspace"></span></span>, then the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">//</span><span class="hspace"></span></span> is stripped and the
remainder parsed as a Windows path.</p></li><li><p>If <span class="RktInBG"><span class="hspace"></span><span class="RktIn">file:</span><span class="hspace"></span></span> is followed by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">\\</span><span class="hspace"></span></span>, then the
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">\\</span><span class="hspace"></span></span> is stripped and the remainder parsed as a Windows
path.</p></li></ul><p>In both of these cases, the host is <span class="RktVal">""</span>, the port is
<span class="RktVal">#f</span>, and path-element decoding (which extract parameters or
replaces <span class="RktInBG"><span class="hspace"></span><span class="RktIn">%20</span><span class="hspace"></span></span> with a space, for example) is not applied to
the path.</p><p class="SHistory">Changed in version 6.3.0.1 of package <span class="stt">base</span>: Changed handling of <span class="RktInBG"><span class="hspace"></span><span class="RktIn">file:</span><span class="hspace"></span></span>
URLs when the value of
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._file-url-path-convention-type%29%29" class="RktValLink" data-pltdoc="x">file-url-path-convention-type</a></span>
is <span class="RktVal">'</span><span class="RktVal">windows</span>. Changed in version 6.4.0.7: Use more specific regexp for
input contract. Changed in version 6.5.0.3: Support a host as an IPv6 literal address
as written in <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span>...<span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._combine-url/relative))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._combine-url%2Frelative%29%29" class="RktValDef RktValLink" data-pltdoc="x">combine-url/relative</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">base</span><span class="hspace">&nbsp;</span><span class="RktVar">relative</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">base</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">relative</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Given a base URL and a relative path, combines the two and returns a
new URL as per the URL combination specification.  They are combined
according to the rules in RFC 3986 [<a href="doc-bibliography.html#%28cite._.R.F.C3986%29" data-pltdoc="x">RFC3986</a>].</div></p><p>This function does not raise any exceptions.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._netscape/string-~3eurl))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._netscape%2Fstring-~3eurl%29%29" class="RktValDef RktValLink" data-pltdoc="x">netscape/string-&gt;url</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">str</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">str</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Turns a string into a URL, applying (what appear to be) Netscape&rsquo;s
conventions on automatically specifying the scheme: a string starting
with a slash gets the scheme <span class="RktVal">"file"</span>, while all others get the
scheme <span class="RktVal">"http"</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._url-~3estring))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3estring%29%29" class="RktValDef RktValLink" data-pltdoc="x">url-&gt;string</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Generates a string corresponding to the contents of a <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValLink" data-pltdoc="x">url</a></span>
struct.  For a <span class="RktVal">"file:"</span> URL, the URL must not be relative, and
the result always starts <span class="RktInBG"><span class="hspace"></span><span class="RktIn">file://</span><span class="hspace"></span></span>. For a URL with a host,
user, or port, its path must be either absolute or empty.</div></p><p>The <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3estring%29%29" class="RktValLink" data-pltdoc="x">url-&gt;string</a></span> procedure uses
<span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._alist-~3eform-urlencoded%29%29" class="RktValLink" data-pltdoc="x">alist-&gt;form-urlencoded</a></span> when formatting the query, so it is
sensitive to the <span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._current-alist-separator-mode%29%29" class="RktValLink" data-pltdoc="x">current-alist-separator-mode</a></span> parameter for
determining the association separator. The default is to separate
associations with a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">&amp;</span><span class="hspace"></span></span>.</p><p>The encoding of path segments and fragment is sensitive to the
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-url-encode-mode%29%29" class="RktValLink" data-pltdoc="x">current-url-encode-mode</a></span> parameter.</p><p class="SHistory">Changed in version 6.5.0.3 of package <span class="stt">base</span>: Support a host as an IPv6 literals addresses
by writing the address in <span class="RktInBG"><span class="hspace"></span><span class="RktIn">[</span><span class="hspace"></span></span>...<span class="RktInBG"><span class="hspace"></span><span class="RktIn">]</span><span class="hspace"></span></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._path-~3eurl))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._path-~3eurl%29%29" class="RktValDef RktValLink" data-pltdoc="x">path-&gt;url</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">path</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">path</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._path-string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">path-string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-for-some-system%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">path-for-some-system?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Converts a path to a <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url%29%29" class="RktValLink" data-pltdoc="x">url</a></span>.</div></p><p>With the <span class="RktVal">'</span><span class="RktVal">unix</span> path convention, the host in the resulting URL
is always <span class="RktVal">""</span>, and the path is absolute from the root.</p><p>With the <span class="RktVal">'</span><span class="RktVal">windows</span> path convention and a UNC path, the machine
part of the UNC root is used as the URL&rsquo;s host, and the drive part of
the root is the first element of the URL&rsquo;s path.</p><p class="SHistory">Changed in version 6.3.0.1 of package <span class="stt">base</span>: Changed <span class="RktVal">'</span><span class="RktVal">windows</span> encoding
of UNC paths.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._url-~3epath))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3epath%29%29" class="RktValDef RktValLink" data-pltdoc="x">url-&gt;path</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">kind</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-for-some-system%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">path-for-some-system?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">kind</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unix</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">windows</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._system-path-convention-type%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">system-path-convention-type</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Converts <span class="RktVar">URL</span>, which is assumed to be a <span class="RktVal">"file"</span> URL,
to a path.</div></p><p>For the <span class="RktVal">'</span><span class="RktVal">unix</span> path convention, the URL&rsquo;s host is ignored, and
the URL&rsquo;s path is formed relative to the root.</p><p>For the <span class="RktVal">'</span><span class="RktVal">windows</span> path convention:</p><ul><li><p>A non-<span class="RktVal">""</span> value for the URL&rsquo;s host field creates a UNC
path, where the host is the UNC root&rsquo;s machine name, the URL&rsquo;s
path must be non-empty, and the first element of the URL&rsquo;s path
is used as the drive part of the UNC root.</p></li><li><p>For legacy reasons, if the URL&rsquo;s host is <span class="RktVal">""</span>, the URL&rsquo;s
path contains at least three elements, and and the first
element of the URL&rsquo;s path is also <span class="RktVal">""</span>, then a UNC path
is created by using the second and third elements of the path
as the UNC root&rsquo;s machine and drive, respectively.</p></li><li><p>Otherwise, the URL&rsquo;s path is converted to a Windows path. The
result is an absolute path if the URL&rsquo;s first path element
corresponds to a drive, otherwise the result is a relative path
(even though URLs are not intended to represent relative paths).</p></li></ul><p class="SHistory">Changed in version 6.3.0.1 of package <span class="stt">base</span>: Changed <span class="RktVal">'</span><span class="RktVal">windows</span> treatment
of a non-<span class="RktVal">""</span> host.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._relative-path-~3erelative-url-string))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._relative-path-~3erelative-url-string%29%29" class="RktValDef RktValLink" data-pltdoc="x">relative-path-&gt;relative-url-string</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">path</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">path</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._and%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._path-string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">path-string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._path-for-some-system%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">path-for-some-system?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Manipulating_Paths.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._relative-path%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">relative-path?</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Converts <span class="RktVar">path</span> to a string that parses as a relative URL (with
forward slashes). Each element of <span class="RktVar">path</span> is an element of the
resulting URL path, and the string form of each element is encoded as
needed. If <span class="RktVar">path</span> is syntactically a directory, then the resulting
URL ends with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._file-url-path-convention-type))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._file-url-path-convention-type%29%29" class="RktValDef RktValLink" data-pltdoc="x">file-url-path-convention-type</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unix</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">windows</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._file-url-path-convention-type%29%29" class="RktValDef RktValLink" data-pltdoc="x">file-url-path-convention-type</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">kind</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">kind</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unix</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">windows</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Determines the default conversion from strings for
<span class="RktVal">"file"</span> URLs; see <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._string-~3eurl%29%29" class="RktValLink" data-pltdoc="x">string-&gt;url</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._current-url-encode-mode))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-url-encode-mode%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-url-encode-mode</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">recommended</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unreserved</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-url-encode-mode%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-url-encode-mode</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">mode</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">mode</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">recommended</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unreserved</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Determines how <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-~3estring%29%29" class="RktValLink" data-pltdoc="x">url-&gt;string</a></span> encodes <span class="RktInBG"><span class="hspace"></span><span class="RktIn">!</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">*</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">'</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">(</span><span class="hspace"></span></span>,
and <span class="RktInBG"><span class="hspace"></span><span class="RktIn">)</span><span class="hspace"></span></span> in path segments and fragments:
<span class="RktVal">'</span><span class="RktVal">recommended</span> leave them as-is, while <span class="RktVal">'</span><span class="RktVal">unreserved</span>
encodes them using <span class="RktInBG"><span class="hspace"></span><span class="RktIn">%</span><span class="hspace"></span></span>. The <span class="RktVal">'</span><span class="RktVal">recommended</span> mode corresponds
to the recommendations of RFC 2396 [<a href="doc-bibliography.html#%28cite._.R.F.C2396%29" data-pltdoc="x">RFC2396</a>], but <span class="RktVal">'</span><span class="RktVal">unreserved</span>
avoids characters that are in some contexts mistaken for delimiters around
URLs.</div></p><p>Internally, <span class="RktVal">'</span><span class="RktVal">recommended</span> mode uses
<span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._uri-path-segment-encode%29%29" class="RktValLink" data-pltdoc="x">uri-path-segment-encode</a></span> and <span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._uri-encode%29%29" class="RktValLink" data-pltdoc="x">uri-encode</a></span>, while
<span class="RktVal">'</span><span class="RktVal">unreserved</span> mode uses
<span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._uri-path-segment-unreserved-encode%29%29" class="RktValLink" data-pltdoc="x">uri-path-segment-unreserved-encode</a></span> and
<span class="RktSym"><a href="uri-codec.html#%28def._%28%28lib._net%2Furi-codec..rkt%29._uri-unreserved-encode%29%29" class="RktValLink" data-pltdoc="x">uri-unreserved-encode</a></span>.</p><h4 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;URL_Functions&quot;">2.3<tt>&nbsp;</tt><a name="(part._.U.R.L_.Functions)"></a>URL Functions</h4><p>An HTTP connection is created as a <a name="(tech._pure._port)"></a><span style="font-style: italic">pure port</span> or a
<a name="(tech._impure._port)"></a><span style="font-style: italic">impure port</span>.  A pure port is one from which the MIME headers
have been removed, so that what remains is purely the first content
fragment. An impure port is one that still has its MIME headers.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._get-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-pure-port</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">URL</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span>[</td><td valign="top"><span class="RktVar">header</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:redirections</span><span class="hspace">&nbsp;</span><span class="RktVar">redirections</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">redirections</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">0</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._head-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._head-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">head-pure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._delete-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._delete-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">delete-pure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._options-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._options-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">options-pure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Initiates a GET/HEAD/DELETE/OPTIONS request for <span class="RktVar">URL</span> and returns a
<a href="#%28tech._pure._port%29" class="techoutside" data-pltdoc="x"><span class="techinside">pure port</span></a> corresponding to the body of the response. The
optional list of strings can be used to send header lines to the
server.</div></p><p>The GET method is used to retrieve whatever information is identified
by <span class="RktVar">URL</span>. If <span class="RktVar">redirections</span> is not <span class="RktVal">0</span>, then
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span> will follow redirections from the server,
up to the limit given by <span class="RktVar">redirections</span>.</p><p>The HEAD method is identical to GET, except the server must not return
a message body. The meta-information returned in a response to a HEAD
request should be identical to the information in a response to a GET
request.</p><p>The DELETE method is used to delete the entity identified by
<span class="RktVar">URL</span>.</p><p><span style="font-weight: bold">Beware:</span> By default, <span class="RktVal">"https"</span> scheme handling does not
verify a server&rsquo;s certificate (i.e., it&rsquo;s equivalent of clicking
through a browser&rsquo;s warnings), so communication is safe, but the
identity of the server is not verified. To validate the server&rsquo;s
certificate, set <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-connect..rkt%29._current-https-protocol%29%29" class="RktValLink" data-pltdoc="x">current-https-protocol</a></span> to <span class="RktVal">'</span><span class="RktVal">secure</span>
or a context created with <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=openssl&amp;rel=index.html%23%2528def._%2528%2528lib._openssl%252Fmain..rkt%2529._ssl-secure-client-context%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">ssl-secure-client-context</a></span>.</p><p>The <span class="RktVal">"file"</span> scheme for URLs is handled only by
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span>, which uses <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=file-ports.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._open-input-file%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">open-input-file</a></span>, does not
handle exceptions, and ignores the optional strings.</p><p class="SHistory">Changed in version 6.1.1.8 of package <span class="stt">base</span>: Added <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._options-pure-port%29%29" class="RktValLink" data-pltdoc="x">options-pure-port</a></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._get-impure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-impure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-impure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._head-impure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._head-impure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">head-impure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._delete-impure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._delete-impure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">delete-impure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._options-impure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._options-impure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">options-impure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span>, etc., but the resulting <a href="#%28tech._impure._port%29" class="techoutside" data-pltdoc="x"><span class="techinside">impure
port</span></a> contains both the returned headers and the body. The
<span class="RktVal">"file"</span> URL scheme is not handled by these functions.</div></p><p class="SHistory">Changed in version 6.1.1.8 of package <span class="stt">base</span>: Added <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._options-impure-port%29%29" class="RktValLink" data-pltdoc="x">options-impure-port</a></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._post-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._post-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">post-pure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._put-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._put-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">put-pure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Initiates a POST/PUT request for <span class="RktVar">URL</span> and sends the
<span class="RktVar">post</span> byte string.  The result is a <a href="#%28tech._pure._port%29" class="techoutside" data-pltdoc="x"><span class="techinside">pure port</span></a>, which
contains the body of the response is returned.  The optional list of
strings can be used to send header lines to the server.</div></p><p><span style="font-weight: bold">Beware:</span> See <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span> for warnings about
<span class="RktVal">"https"</span> certificate validation.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._post-impure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._post-impure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">post-impure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._put-impure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._put-impure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">put-impure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>[<span class="RktVar">header</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">post</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._null%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">null</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._post-pure-port%29%29" class="RktValLink" data-pltdoc="x">post-pure-port</a></span> and <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._put-pure-port%29%29" class="RktValLink" data-pltdoc="x">put-pure-port</a></span>, but the
resulting <a href="#%28tech._impure._port%29" class="techoutside" data-pltdoc="x"><span class="techinside">impure port</span></a> contains both the returned headers and
body.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._display-pure-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._display-pure-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">display-pure-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">in</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">in</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Writes the output of a pure port, which is useful for debugging purposes.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._purify-port))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._purify-port%29%29" class="RktValDef RktValLink" data-pltdoc="x">purify-port</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">in</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">in</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Purifies a port, returning the MIME headers, plus a leading line for
the form <span class="RktInBG"><span class="hspace"></span><span class="RktIn">HTTP/</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">vers</span>&#8250;</span><span class="RktInBG"><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">code</span>&#8250;</span><span class="RktInBG"><span class="hspace">&nbsp;</span></span><span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span>, where <span class="sroman">&#8249;<span style="font-style: italic">vers</span>&#8250;</span> is
something like <span class="RktInBG"><span class="hspace"></span><span class="RktIn">1.0</span><span class="hspace"></span></span> or <span class="RktInBG"><span class="hspace"></span><span class="RktIn">1.1</span><span class="hspace"></span></span>, <span class="sroman">&#8249;<span style="font-style: italic">code</span>&#8250;</span> is an
exact integer for the response code, and <span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span> is
arbitrary text without a return or newline.</div></p><p>The <a href="head.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/head</span></a> library provides procedures, such as
<span class="RktSym"><a href="head.html#%28def._%28%28lib._net%2Fhead..rkt%29._extract-field%29%29" class="RktValLink" data-pltdoc="x">extract-field</a></span> for manipulating the header.</p><p>Since web servers sometimes return mis-formatted replies,
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._purify-port%29%29" class="RktValLink" data-pltdoc="x">purify-port</a></span> is liberal in what it accepts as a header. as a
result, the result string may be ill formed, but it will either be the
empty string, or it will be a string matching the following regexp:</p><blockquote class="SCodeFlow"><p><span class="RktVal">#rx"^HTTP/.*?(\r\n\r\n|\n\n|\r\r)"</span></p></blockquote><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._get-pure-port/headers))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%2Fheaders%29%29" class="RktValDef RktValLink" data-pltdoc="x">get-pure-port/headers</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">url</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span>[</td><td valign="top"><span class="RktVar">headers</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:redirections</span><span class="hspace">&nbsp;</span><span class="RktVar">redirections</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:status?</span><span class="hspace">&nbsp;</span><span class="RktVar">status?</span>]</td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:connection</span><span class="hspace">&nbsp;</span><span class="RktVar">connection</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr></table></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">url</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">headers</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">redirections</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">0</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">status?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">connection</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection~3f%29%29" class="RktValLink" data-pltdoc="x">http-connection?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">This function is an alternative to calling <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-impure-port%29%29" class="RktValLink" data-pltdoc="x">get-impure-port</a></span> and
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._purify-port%29%29" class="RktValLink" data-pltdoc="x">purify-port</a></span> when needing to follow redirections. It also
supports HTTP/1.1 connections, which are used when the <span class="RktVar">connection</span>
argument is not <span class="RktVal">#f</span>.</div></p><p>The <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%2Fheaders%29%29" class="RktValLink" data-pltdoc="x">get-pure-port/headers</a></span> function performs a GET request
on <span class="RktVar">url</span>, follows up to <span class="RktVar">redirections</span> redirections
and returns a port containing the data as well as the headers for
the final connection. If <span class="RktVar">status?</span> is true, then the status
line is included in the result string.</p><p>A given <span class="RktVar">connection</span> should be used for communication
with a particular HTTP/1.1 server, unless <span class="RktVar">connection</span> is closed
(via <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection-close%29%29" class="RktValLink" data-pltdoc="x">http-connection-close</a></span>) between uses for different servers.
If <span class="RktVar">connection</span> is provided, read all data from the result port
before making a new request with the same <span class="RktVar">connection</span>. (Reusing
a <span class="RktVar">connection</span> without reading all data may or may not work.)</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._http-connection~3f))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">http-connection?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._make-http-connection))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._make-http-connection%29%29" class="RktValDef RktValLink" data-pltdoc="x">make-http-connection</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection~3f%29%29" class="RktValLink" data-pltdoc="x">http-connection?</a></span></p></blockquote></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._http-connection-close))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection-close%29%29" class="RktValDef RktValLink" data-pltdoc="x">http-connection-close</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">connection</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">connection</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection~3f%29%29" class="RktValLink" data-pltdoc="x">http-connection?</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">A HTTP connection value represents a potentially persistent connection
with a HTTP/1.1 server for use with <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%2Fheaders%29%29" class="RktValLink" data-pltdoc="x">get-pure-port/headers</a></span>.</div></p><p>The <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._make-http-connection%29%29" class="RktValLink" data-pltdoc="x">make-http-connection</a></span> creates a &ldquo;connection&rdquo; that is
initially unconnected. Each call to <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%2Fheaders%29%29" class="RktValLink" data-pltdoc="x">get-pure-port/headers</a></span>
leaves a connection either connected or unconnected, depending on
whether the server allows the connection to continue. The
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-connection-close%29%29" class="RktValLink" data-pltdoc="x">http-connection-close</a></span> function unconnects, but it does not
prevent further use of the connection value.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._call/input-url))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._call%2Finput-url%29%29" class="RktValDef RktValLink" data-pltdoc="x">call/input-url</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span><span class="RktVar">connect</span><span class="hspace">&nbsp;</span><span class="RktVar">handle</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">connect</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">handle</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._call%2Finput-url%29%29" class="RktValDef RktValLink" data-pltdoc="x">call/input-url</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span><span class="RktVar">connect</span><span class="hspace">&nbsp;</span><span class="RktVar">handle</span><span class="hspace">&nbsp;</span><span class="RktVar">header</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">URL</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">connect</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">handle</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">header</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Given a URL and a <span class="RktVar">connect</span> procedure like
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span> to convert the URL to an input port (either a
<a href="#%28tech._pure._port%29" class="techoutside" data-pltdoc="x"><span class="techinside">pure port</span></a> or <a href="#%28tech._impure._port%29" class="techoutside" data-pltdoc="x"><span class="techinside">impure port</span></a>), calls the <span class="RktVar">handle</span>
procedure on the port and closes the port on return. The result of the
<span class="RktVar">handle</span> procedure is the result of <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._call%2Finput-url%29%29" class="RktValLink" data-pltdoc="x">call/input-url</a></span>.</div></p><p>When a <span class="RktVar">header</span> argument is supplied, it is passed along to the
<span class="RktVar">connect</span> procedure.</p><p>The connection is made in such a way that the port is closed before
<span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._call%2Finput-url%29%29" class="RktValLink" data-pltdoc="x">call/input-url</a></span> returns, no matter how it returns. In
particular, it is closed if <span class="RktVar">handle</span> raises an exception, or if
the connection process is interrupted by an asynchronous break
exception.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._current-proxy-servers))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-proxy-servers%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-proxy-servers</a></span></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._list%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">list/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._integer-in%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">integer-in</a></span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="hspace">&nbsp;</span><span class="RktVal">65535</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-proxy-servers%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-proxy-servers</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">mapping</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">mapping</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._list%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">list/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._integer-in%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">integer-in</a></span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="hspace">&nbsp;</span><span class="RktVal">65535</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._net/url..rkt)._proxiable-url-schemes))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._proxiable-url-schemes%29%29" class="RktValDef RktValLink" data-pltdoc="x">proxiable-url-schemes</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">"http"</span><span class="hspace">&nbsp;</span><span class="RktVal">"https"</span><span class="hspace">&nbsp;</span><span class="RktVal">"git"</span><span class="RktVal">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">The <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-proxy-servers%29%29" class="RktValLink" data-pltdoc="x">current-proxy-servers</a></span> parameter determines a mapping of proxy servers used for
connections. Each mapping is a list of three elements:</div></p><ul><li><p>the URL scheme, such as <span class="RktVal">"http"</span>, where <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._proxiable-url-schemes%29%29" class="RktValLink" data-pltdoc="x">proxiable-url-schemes</a></span> lists the URL schemes
that can be proxied</p></li><li><p>the proxy server address; and</p></li><li><p>the proxy server port number.</p></li></ul><p>The initial value of <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-proxy-servers%29%29" class="RktValLink" data-pltdoc="x">current-proxy-servers</a></span> is configured on demand from environment
variables. Proxies for each URL scheme are configured from two variables each:</p><ul><li><p><a name="(idx._(gentag._0._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">plt_http_proxy</span> and <a name="(idx._(gentag._1._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">http_proxy</span>, configure the HTTP
proxy, where the former takes precedence over the latter. HTTP requests will be proxied using an
HTTP proxy server connection</p></li><li><p><a name="(idx._(gentag._2._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">plt_https_proxy</span> and <a name="(idx._(gentag._3._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">https_proxy</span>, configure the HTTPS
 proxy, where the former takes precedence over the latter. HTTPS connections are proxied using an
HTTP &ldquo;CONNECT&rdquo; tunnel</p></li><li><p><a name="(idx._(gentag._4._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">plt_git_proxy</span> and <a name="(idx._(gentag._5._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">git_proxy</span>, configure the GIT
 proxy, where the former takes precedence over the latter. GIT connections are proxied using an
HTTP &ldquo;CONNECT&rdquo; tunnel</p></li></ul><p>Each environment variable contains a single URL of the form
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">http://</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">hostname</span>&#8250;</span><span class="RktInBG"><span class="hspace"></span><span class="RktIn">:</span><span class="hspace"></span></span><span class="sroman">&#8249;<span style="font-style: italic">portno</span>&#8250;</span>.
If any other components of the URL are provided, a warning will be logged to a <span class="RktSym">net/url</span>
logger.</p><p>The default mapping is the empty list (i.e., no proxies).</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._current-no-proxy-servers))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-no-proxy-servers%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-no-proxy-servers</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=regexp.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._regexp%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">regexp?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-no-proxy-servers%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-no-proxy-servers</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">dest-hosts-list</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">dest-hosts-list</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=regexp.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._regexp%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">regexp?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines which servers will be accessed directly
i.e. without resort to <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-proxy-servers%29%29" class="RktValLink" data-pltdoc="x">current-proxy-servers</a></span>. It is a list of</div></p><ul><li><p>strings that match host names exactly; and</p></li><li><p>regexps that match host by pattern.</p></li></ul><p>If a proxy server is defined for a URL scheme, then the destination
host name is checked against <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-no-proxy-servers%29%29" class="RktValLink" data-pltdoc="x">current-no-proxy-servers</a></span>. The proxy
is used if and only if the host name does not match (by the definition
above) any in the list.</p><p><div class="SIntrapara">The initial value of <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-no-proxy-servers%29%29" class="RktValLink" data-pltdoc="x">current-no-proxy-servers</a></span> is configured on demand from the
environment variables <a name="(idx._(gentag._6._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">plt_no_proxy</span> and <a name="(idx._(gentag._7._(lib._net/scribblings/net..scrbl)))"></a><span class="stt">no_proxy</span>,
where the former takes precedence over the latter.
Each environment variable&rsquo;s value is parsed as a comma-separated list of &ldquo;patterns,&rdquo;
where a pattern is one of:
    </div><div class="SIntrapara"><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p>This parsing is consistent with the <span class="RktInBG"><span class="hspace"></span><span class="RktIn">no_proxy</span><span class="hspace"></span></span> environment
variable used by other software, albeit not consistent with the regexps
  stored in <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-no-proxy-servers%29%29" class="RktValLink" data-pltdoc="x">current-no-proxy-servers</a></span>.</p></blockquote></blockquote></blockquote></div></p><ul><li><p>a string beginning with a <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.</span><span class="hspace"></span></span> (period): converted to a
regexp that performs a suffix match on a destination host name;
e.g. <span class="RktInBG"><span class="hspace"></span><span class="RktIn">.racket-lang.org</span><span class="hspace"></span></span> matches destinations of
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">doc.racket-lang.org</span><span class="hspace"></span></span>, <span class="RktInBG"><span class="hspace"></span><span class="RktIn">pkgs.racket-lang.org</span><span class="hspace"></span></span>, but
neither <span class="RktInBG"><span class="hspace"></span><span class="RktIn">doc.bracket-lang.org</span><span class="hspace"></span></span> nor
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">pkgs.racket-lang.org.uk</span><span class="hspace"></span></span>;</p></li><li><p>any other string: converted to a regexp that matches the string exactly.</p></li></ul><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._proxy-server-for))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._proxy-server-for%29%29" class="RktValDef RktValLink" data-pltdoc="x">proxy-server-for</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">url-schm</span><span class="hspace">&nbsp;</span>[<span class="RktVar">dest-host-name</span>]<span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._list%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">list/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._integer-in%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">integer-in</a></span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="hspace">&nbsp;</span><span class="RktVal">65535</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">url-schm</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">dest-host-name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the proxy server entry for the combination of <span class="RktVar">url-schm</span>
and <span class="RktSym">host</span>, or <span class="RktVal">#f</span> if no proxy is to be used.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._url-exception~3f))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._url-exception~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">url-exception?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">x</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">x</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Identifies an error thrown by URL functions.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._http-sendrecv/url))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._http-sendrecv%2Furl%29%29" class="RktValDef RktValLink" data-pltdoc="x">http-sendrecv/url</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">u</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span>[</td><td valign="top"><span class="RktPn">#:method</span><span class="hspace">&nbsp;</span><span class="RktVar">method</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:headers</span><span class="hspace">&nbsp;</span><span class="RktVar">headers</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:data</span><span class="hspace">&nbsp;</span><span class="RktVar">data</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:content-decode</span><span class="hspace">&nbsp;</span><span class="RktVar">decodes</span>]<span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr></table></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="RktPn">)</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">u</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-structs..rkt%29._url~3f%29%29" class="RktValLink" data-pltdoc="x">url?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">method</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#"GET"</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">headers</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=pairs.html%23%2528def._%2528%2528lib._racket%252Flist..rkt%2529._empty%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">empty</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">data</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="http-client.html#%28def._%28%28lib._net%2Fhttp-client..rkt%29._data-procedure%2Fc%29%29" class="RktValLink" data-pltdoc="x">data-procedure/c</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">decodes</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">gzip</span><span class="RktVal">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Calls <span class="RktSym"><a href="http-client.html#%28def._%28%28lib._net%2Fhttp-client..rkt%29._http-sendrecv%29%29" class="RktValLink" data-pltdoc="x">http-sendrecv</a></span> using <span class="RktVar">u</span> to populate the host, URI, port, and SSL parameters.</div></p><p>This function does not support proxies.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url..rkt)._tcp-or-tunnel-connect))"></a><span title="Provided from: net/url | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._tcp-or-tunnel-connect%29%29" class="RktValDef RktValLink" data-pltdoc="x">tcp-or-tunnel-connect</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">scheme</span><span class="hspace">&nbsp;</span><span class="RktVar">host</span><span class="hspace">&nbsp;</span><span class="RktVar">port</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">scheme</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">host</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">port</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._between%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">between/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">1</span><span class="hspace">&nbsp;</span><span class="RktVal">65535</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">If <span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._proxy-server-for%29%29" class="RktValLink" data-pltdoc="x">proxy-server-for</a></span><span class="stt"> </span><span class="RktVar">scheme</span><span class="stt"> </span><span class="RktVar">host</span><span class="RktPn">)</span>, then the proxy is used to
<span class="RktSym"><a href="http-client.html#%28def._%28%28lib._net%2Fhttp-client..rkt%29._http-conn-.C.O.N.N.E.C.T-tunnel%29%29" class="RktValLink" data-pltdoc="x">http-conn-CONNECT-tunnel</a></span> to <span class="RktVar">host</span> (on port <span class="RktVar">port</span>).</div></p><p>Otherwise the call is equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=tcp.html%23%2528def._%2528%2528lib._racket%252Ftcp..rkt%2529._tcp-connect%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">tcp-connect</a></span><span class="stt"> </span><span class="RktVar">host</span><span class="stt"> </span><span class="RktVar">port</span><span class="RktPn">)</span>.</p><h4 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;URL_HTTPS_mode&quot;">2.4<tt>&nbsp;</tt><a name="(part._.U.R.L_.H.T.T.P.S_mode)"></a><a name="(mod-path._net/url-connect)"></a>URL HTTPS mode</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Furl-connect%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-connect</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">base</span></span></td></tr></table></p><p>These bindings are provided by the <a href="#%28mod-path._net%2Furl-connect%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-connect</span></a> library, and
used by <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._net/url-connect..rkt)._current-https-protocol))"></a><span title="Provided from: net/url-connect | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-connect..rkt%29._current-https-protocol%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-https-protocol</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=openssl&amp;rel=index.html%23%2528def._%2528%2528lib._openssl%252Fmain..rkt%2529._ssl-client-context%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">ssl-client-context?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: net/url-connect | Package: base"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-connect..rkt%29._current-https-protocol%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-https-protocol</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">protocol</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">protocol</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=openssl&amp;rel=index.html%23%2528def._%2528%2528lib._openssl%252Fmain..rkt%2529._ssl-client-context%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">ssl-client-context?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines the connection mode for <span class="RktVal">"https"</span>
connections; the parameter value is passed as the third argument to
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=openssl&amp;rel=index.html%23%2528def._%2528%2528lib._openssl%252Fmain..rkt%2529._ssl-connect%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">ssl-connect</a></span> when creating an <span class="RktVal">"https"</span> connection.
Set this parameter to validate a server&rsquo;s certificates, for example,
as described with <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._get-pure-port%29%29" class="RktValLink" data-pltdoc="x">get-pure-port</a></span>.</div></p><h4 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;URL_Unit&quot;">2.5<tt>&nbsp;</tt><a name="(part._.U.R.L_.Unit)"></a><a name="(mod-path._net/url-unit)"></a>URL Unit</h4><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-unit..rkt%29._url~40%29%29" class="RktValLink" data-pltdoc="x">url@</a></span>, <span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url~5e%29%29" class="RktStxLink" data-pltdoc="x">url^</a></span>, and <span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url%2Bscheme~5e%29%29" class="RktStxLink" data-pltdoc="x">url+scheme^</a></span> are deprecated.
They exist for backward-compatibility and will likely be removed in
the future. New code should use the <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a> module.</p></blockquote></blockquote></blockquote><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Furl-unit%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-unit</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">compatibility-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._net/url-unit..rkt)._url~40))"></a><span title="Provided from: net/url-unit | Package: compatibility-lib"><span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-unit..rkt%29._url~40%29%29" class="RktValDef RktValLink" data-pltdoc="x">url@</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym">unit?</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Imports <span class="RktSym"><a href="tcp.html#%28form._%28%28lib._net%2Ftcp-sig..rkt%29._tcp~5e%29%29" class="RktStxLink" data-pltdoc="x">tcp^</a></span>, exports <span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url%2Bscheme~5e%29%29" class="RktStxLink" data-pltdoc="x">url+scheme^</a></span>.</div></p><p>The <span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url%2Bscheme~5e%29%29" class="RktStxLink" data-pltdoc="x">url+scheme^</a></span> signature contains
<span class="RktSym">current-connect-scheme</span>, which <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-unit..rkt%29._url~40%29%29" class="RktValLink" data-pltdoc="x">url@</a></span> binds to a
parameter.  The parameter is set to the scheme of a URL when
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=tcp.html%23%2528def._%2528%2528lib._racket%252Ftcp..rkt%2529._tcp-connect%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">tcp-connect</a></span> is called to create a connection.  A
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=tcp.html%23%2528def._%2528%2528lib._racket%252Ftcp..rkt%2529._tcp-connect%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">tcp-connect</a></span> variant linked to <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-unit..rkt%29._url~40%29%29" class="RktValLink" data-pltdoc="x">url@</a></span> can check this
parameter to choose the connection mode; in particular, <span class="RktSym">net/url</span>
supplies a <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=tcp.html%23%2528def._%2528%2528lib._racket%252Ftcp..rkt%2529._tcp-connect%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">tcp-connect</a></span> that actually uses <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=openssl&amp;rel=index.html%23%2528def._%2528%2528lib._openssl%252Fmain..rkt%2529._ssl-connect%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">ssl-connect</a></span>
when <span class="RktPn">(</span><span class="RktSym">current-connect-scheme</span><span class="RktPn">)</span> produces <span class="RktVal">"https"</span>.</p><p>Note that <span class="RktSym">net/url</span> does not provide the
<span class="RktSym">current-connect-scheme</span> parameter.</p><h4 x-source-module="(lib &quot;net/scribblings/net.scrbl&quot;)" x-source-pkg="net-doc" x-part-tag="&quot;URL_Signature&quot;">2.6<tt>&nbsp;</tt><a name="(part._.U.R.L_.Signature)"></a><a name="(mod-path._net/url-sig)"></a>URL Signature</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._net%2Furl-sig%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url-sig</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">compatibility-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>signature</p></div></div><p class="RForeground"><a name="(form._((lib._net/url-sig..rkt)._url~5e))"></a><span title="Provided from: net/url-sig | Package: compatibility-lib"><span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url~5e%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">url^</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span>signature</p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="leftindent"><p>Includes everything exported by the <a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a> module
except <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl-connect..rkt%29._current-https-protocol%29%29" class="RktValLink" data-pltdoc="x">current-https-protocol</a></span> and <span class="RktSym"><a href="#%28def._%28%28lib._net%2Furl..rkt%29._current-url-encode-mode%29%29" class="RktValLink" data-pltdoc="x">current-url-encode-mode</a></span>.
Note that the exports of
<a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">net/url</span></a> and the <span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url~5e%29%29" class="RktStxLink" data-pltdoc="x">url^</a></span> signature do not include
<span class="RktSym">current-connect-scheme</span>.</p></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>signature</p></div></div><p class="RForeground"><a name="(form._((lib._net/url-sig..rkt)._url+scheme~5e))"></a><span title="Provided from: net/url-sig | Package: compatibility-lib"><span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url%2Bscheme~5e%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">url+scheme^</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span>signature</p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="leftindent"><p>Adds <span class="RktSym">current-connect-scheme</span> to <span class="RktSym"><a href="#%28form._%28%28lib._net%2Furl-sig..rkt%29._url~5e%29%29" class="RktStxLink" data-pltdoc="x">url^</a></span>.</p></blockquote></div></p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="http-client.html" title="backward to &quot;1 HTTP Client&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="index.html" title="up to &quot;Net: Networking Libraries&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="uri-codec.html" title="forward to &quot;3 URI Codec: Encoding and Decoding URIs&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>