`
`Covers HTTP/1.1
`
`"MANNDNG _
`
`Facebook's Exhibit No. 1015/1115
`
`Page 1
`
`Facebook's Exhibit No. 1015/1115
`Page 1
`
`
`
`Illustrated Guide
`
`to HTTP
`
`
`
`PAUL S. HETHMON
`H
`
`MANNING
`
`Urccnwich
`
`{734° w. lung.)
`
`Facebook's Exhibit No. 1015/1115
`
`Page 2
`
`Facebook's Exhibit No. 1015/1115
`Page 2
`
`
`
`For elutroniL browsing and ordering ill‘lllia‘ book. See http:wawbrowsebtmksxnm.
`
`The publisher offers discounts on this lmok when ordered in quantity. For more
`information. please contact:
`
`Lia/i "6
`
`-’76
`
`me] .944 H +4 9’74
`
`x 997
`
`Mg...
`
`Special Sales [)Iepartll‘lcrtt
`Manning Publications (.0.
`3 Lewis Street
`G reeltwich. CT (itifijfl
`
`Fax: [203] (ital—9018
`email: orders@manning.com
`
`_
`
`/:-f" _l
`\'\‘99 '
`HANSEN
`
`.n
`
`p
`
`
`
`@199? by Manning Publications Co. All rights reserved.
`
`No pan of this publication may be reproduced. stored in a retrieval system. or
`transmitted. in any Form or by means electronic. mechanical. photocopying. or
`otherwise. without ptio: written permission of the publisher.
`
`'93 Recognizing the importance of preserving what has been written. it is
`Manning’s policy to have the books it publishes printed on acid—Free paper. and
`we exert our best eiiorts to that end.
`
`Many oFtbe designations used by manufacturers and sellers to distinguish their
`products are claimed as trademarks. Where those designations appear in the book.
`and Manning Publications was aware of a trademark claim. the designations have
`been printed in initial caps or all caps.
`
`Library of Congress Cataloging—in-Publication Data
`Hethmon. Paul 5.
`
`Illustrated guide to H I I P 1" Paul S. Hetbmon.
`p.
`cm.
`Includes bibliographical reFrences and index.
`ISBN |-834?7?—37-6
`
`l. Hypertext systems. 2. HTTP {Computer network protocol)
`I. Title.
`QA76.76.H94H484 1997
`004.6'2—de21
`
`97—1596
`CIP
`
`M Manning Publications Co.
`3 Lewis Street
`Greenwich. CT 06830
`
`Copyeditor: Maggie Mitchell
`Typfietter: Dorothy Marsioo
`Cover designer: Lulie Haimes
`
`Printed in the United States ofAmcrica
`123456739IO—CR—00999897
`
`Facebook's Exhibit No. 1015/1115
`
`Page 3
`
`Facebook's Exhibit No. 1015/1115
`Page 3
`
`
`
`60721197235
`
`pi‘tjfln'r
`
`xi."
`
`arknmm’rdgmrnrs
`
`xiv
`
`1
`
`Introduction I
`
`1.1
`
`ls this book For you? 2
`
`1.2 Required background 3
`1.3 The material 4
`
`1.4 Finishing 6
`
`2 H TTP overview 7
`
`2.} What is the World Wide Web? 8
`The clicntfserver model 8
`
`2.2 General operation 10
`
`2.3 Abirofhistory 12
`HTTWOS 12. HTTPHD 13
`
`2.4 HTTPHJ 16
`
`Pcrsistentconnections 18.
`New request methods 1?.
`Chunked encoding 1‘). Byte range operations 20.
`Content negotiation 20. Digest Authentication 21,
`Caching 22
`
`2.5 Finishing 24
`
`vii
`
`Facebook's Exhibit No. 1015/1115
`
`Page 4
`
`Facebook's Exhibit No. 1015/1115
`Page 4
`
`
`
`t 7 UN TEN T5
`
`
`3 Bane H TTP—syn tax and semantic: 25
`3.]
`
`Terminology 26
`
`3.2
`
`3.3
`
`3.4
`
`Protocol syntax 31
`
`The basic grammar 35
`
`Basic HTTP concepts 34
`HTTP version 34. Uniform Resource Identifiers 35.
`
`Formats for date and time 38. Code: date handling 3‘}.
`Character sets 41. Contenteodings 42. Transfer
`codings 43. Code: Chunked encoding 44. Media
`types 47.
`Product tokens 4‘). Quality values 49.
`Language tags 50. Entity tags 51]. Range units 5!
`
`3.5
`
`Finishing 52
`
`The request 53
`4.]
`
`The Requesr Message 54
`Method definitions 55
`The OPTIONS method 55. The GET method 56. The
`HEAD method '37. The POST method 58, The PUT
`method 59, The DELETE method 60. The TRACE
`method 60
`
`The requeSt header fields 61
`Accept 6]. Aceept-Charset 62. Accept—Encoding 62,
`Accept-Language 62. Authorization 63. Code:
`Basc64 64.
`From 67. Host 67.
`If—Modified-Since 67,
`If—March 68.
`lF—None-Match 68.
`lF—Range 69.
`If-Unmodificd-Since 69. Max—Forwards 69,
`Proxy-Authorization 70. Range 70. Referer 71.
`User-Agent 71
`
`Implementation 71
`GET and HEAD 72, POST 78. PUT 30.
`DELETE 8!. OPTIONS 81, TRACE 32
`
`4.2
`
`4.3
`
`4.4
`
`4'
`
`viii
`
`4.5
`
`Finishing 83
`
`Facebook's Exhibit No. 1015/1115
`
`Page 5
`
`Facebook's Exhibit No. 1015/1115
`Page 5
`
`
`
`
`
`f [1’ UV TEN T5
`
`
`5 Entity and general headers, and cache-mum! 84
`5.1
`
`The entity headers 85
`Allow 85. Content‘Base 85. Content-Encoding 86
`Content-Language 86. Content-Length Bf}.
`Content—Location 8?. Content—MUS 37.
`
`Content-Range 87. Content-Type 83. ETag 88.
`Last-Modified 88
`
`5.2
`
`5.3
`
`The general headers 88
`I’ragma 8‘).
`Connection 89. Date 89.
`‘l'ransfer—Eneoding 8‘). Upgrade 90. Via ‘JU
`Cache-Control 91
`
`What is eachable? 93. Age 93. Cache-Control 94.
`Expires 95. Warning 95. Cache operation 96.
`Expiration of responses 99.
`Fresh and stale
`responses 100. Validatiugatesponse IDLExamples 1113
`
`5.4
`
`Finishing 105
`
`6 The res-poms 106
`6.1
`
`The response message 107
`
`6.2
`
`6.3
`
`6.4
`
`1 1 1
`The response header fields
`Accept-Ranges 112. Authentication-info 112.
`Location 113.
`Proxy-Authenticate 113,
`Proxy-Aurhenticate-info 115.
`Public 113.
`Retry—After “4.
`Server 114. Vary 114.
`Warning H4. WWW-Authenticate 115, Code: Digest
`Access Authentication ] 15
`
`Digesr Access Authentication 1 17
`
`Implementation 121
`GET and HEAD 121. GET and byte range
`requests 124. GET and content negotiation 126
`
`6.5
`
`Finishing 127
`
`Facebook's Exhibit No. 1015/1115
`
`Page 6
`
`Facebook's Exhibit No. 1015/1115
`Page 6
`
`
`
`(TO .'\' TEN T5
`
`
`7 Socket; I28
`
`2.]
`
`7.2
`
`7.3
`
`7.4
`
`7.5
`
`7.6
`
`7.7
`
`7.8
`
`7.9
`
`7.10
`
`7.11
`
`The socket 12‘)
`
`Setting up the server socket 130
`
`Setting up the client socket 134
`Data transmission 1356
`
`Utility routines 144
`Host name and address routines 144
`
`NT specifics 146
`
`0512 specifics 14?
`The socket class 149
`
`The socket class methods 154
`
`Finishing 173
`
`8
`
`The HTTP/1.1 server 174
`
`8.]
`
`8.2
`
`8.3
`
`8.4
`
`8.5
`
`8.6
`
`8.7
`
`8.8
`
`8.9
`
`8.10
`
`8.11
`
`8.12
`
`8.13
`
`8.14
`
`8.15
`
`The configuration file 175
`
`The main program 179
`The server 183
`
`The authorization model 187
`
`Request and response headers 189
`HTTPHJ 216
`
`Finding the method 224
`TRACE 225
`
`OPTIONS 229
`
`PUT 230
`
`If fitnetions 238
`
`Chunked encoding 242
`The DELETE method 247
`
`GET the document 254
`
`Checking the If-Range 265
`
`Facebook's Exhibit No. 1015/1115
`
`Page 7
`
`Facebook's Exhibit No. 1015/1115
`Page 7
`
`
`
`r UN 1' I-'.\' .H'
`
`
`8.|(1 'Iiransmisxionnfihyu: ranch 26?
`
`8.]? Finishing 274
`
`9 Common Gateway Interfizre Support 275
`9.1 Basic Functions 5’6
`
`9.2 Ext-curing the CG] program 287
`9.3 The 0512 version 28‘)
`9.4 The Windows version 299
`
`9.5 Finishing 308
`
`appendix/i H TTP syntax 309
`
`appendix B HTTP header-field definition: 32]
`
`gt'wmrjr
`
`.3 70
`
`51'in0grany
`index
`.373
`
`5 72
`
`Facebook's Exhibit No. 1015/1115
`
`Page 8
`
`Facebook's Exhibit No. 1015/1115
`Page 8
`
`