| 62 | | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 |
|---|
| 63 | | 1.1. Conventions . . . . . . . . . . . . . . . . . . . . . . . . 3 |
|---|
| 64 | | 2. Packet formats . . . . . . . . . . . . . . . . . . . . . . . . 3 |
|---|
| 65 | | 3. Magic values . . . . . . . . . . . . . . . . . . . . . . . . . 4 |
|---|
| 66 | | 4. Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| 67 | | 4.1. get/getq . . . . . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| 68 | | 4.2. delete . . . . . . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| 69 | | 4.3. set/add/replace . . . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| 70 | | 4.4. noop . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| 71 | | 4.5. incr/decr . . . . . . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| 72 | | 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| 73 | | 6. Normative References . . . . . . . . . . . . . . . . . . . . . 7 |
|---|
| 74 | | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 7 |
|---|
| 75 | | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7 |
|---|
| 76 | | |
|---|
| 77 | | |
|---|
| 78 | | |
|---|
| 79 | | |
|---|
| 80 | | |
|---|
| | 62 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 |
|---|
| | 63 | 1.1. Conventions Used In This Document . . . . . . . . . . . . 3 |
|---|
| | 64 | 2. Packet Structure . . . . . . . . . . . . . . . . . . . . . . . 3 |
|---|
| | 65 | 3. Defined Values . . . . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| | 66 | 3.1. Magic Byte . . . . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| | 67 | 3.2. Response Status . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| | 68 | 3.3. Command Opcodes . . . . . . . . . . . . . . . . . . . . . 5 |
|---|
| | 69 | 3.4. Data Types . . . . . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| | 70 | 4. Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| | 71 | 4.1. get/getq . . . . . . . . . . . . . . . . . . . . . . . . . 6 |
|---|
| | 72 | 4.2. delete . . . . . . . . . . . . . . . . . . . . . . . . . . 7 |
|---|
| | 73 | 4.3. set/add/replace . . . . . . . . . . . . . . . . . . . . . 7 |
|---|
| | 74 | 4.4. noop . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 |
|---|
| | 75 | 4.5. incr/decr . . . . . . . . . . . . . . . . . . . . . . . . 8 |
|---|
| | 76 | 5. Example Session . . . . . . . . . . . . . . . . . . . . . . . 9 |
|---|
| | 77 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 |
|---|
| | 78 | 7. Normative References . . . . . . . . . . . . . . . . . . . . . 13 |
|---|
| | 79 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 13 |
|---|
| | 80 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 13 |
|---|
| 126 | | 1.1. Conventions |
|---|
| 127 | | |
|---|
| 128 | | Bits run across the top. Period (.) represent the start of each byte |
|---|
| 129 | | (bit 0 in that byte, so to speak). The characters -, +, | are used |
|---|
| 130 | | for Ascii art. Number of bits in each field are in parens. Numbers |
|---|
| 131 | | on the left side are helpful for counting four byte word lines in the |
|---|
| 132 | | packet. All numbers are in network byte order (big endian). |
|---|
| 133 | | |
|---|
| 134 | | |
|---|
| 135 | | 2. Packet formats |
|---|
| | 126 | 1.1. Conventions Used In This Document |
|---|
| | 127 | |
|---|
| | 128 | FIXME: Use RFC 2119 [KEYWORDS] because otherwise we'll never agree on |
|---|
| | 129 | what MUST means. |
|---|
| | 130 | |
|---|
| | 131 | |
|---|
| | 132 | 2. Packet Structure |
|---|
| | 133 | |
|---|
| | 134 | General format of a packet: |
|---|
| | 135 | |
|---|
| | 136 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 137 | / | | | | |
|---|
| | 138 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 139 | +---------------+---------------+---------------+---------------+ |
|---|
| | 140 | 0/ HEADER / |
|---|
| | 141 | / / |
|---|
| | 142 | / / |
|---|
| | 143 | / / |
|---|
| | 144 | +---------------+---------------+---------------+---------------+ |
|---|
| | 145 | 16/ COMMAND-SPECIFIC EXTRAS (as needed) / |
|---|
| | 146 | +/ (note length in th extras length header field) / |
|---|
| | 147 | +---------------+---------------+---------------+---------------+ |
|---|
| | 148 | m/ Key (as needed) / |
|---|
| | 149 | +/ (note length in key length header field) / |
|---|
| | 150 | +---------------+---------------+---------------+---------------+ |
|---|
| | 151 | n/ Value (as needed) / |
|---|
| | 152 | +/ (note length is total body length header field, minus / |
|---|
| | 153 | +/ sum of the extras and key length body fields) / |
|---|
| | 154 | +---------------+---------------+---------------+---------------+ |
|---|
| | 155 | Total 16 bytes |
|---|
| | 156 | |
|---|
| | 157 | |
|---|
| | 158 | |
|---|
| | 159 | |
|---|
| | 160 | |
|---|
| | 161 | |
|---|
| | 162 | |
|---|
| | 163 | |
|---|
| | 164 | |
|---|
| | 165 | |
|---|
| | 166 | |
|---|
| | 167 | Aaron Stone Expires June 16, 2008 [Page 3] |
|---|
| | 168 | |
|---|
| | 169 | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| | 170 | |
|---|
| 148 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 149 | | 1 |Mag (8) Cmd (8) Stat(8) Resvd(8)| ***FIXME: see below |
|---|
| 150 | | 2 |Len (8) Type(8) Reserved(16) | |
|---|
| 151 | | 3 |Total body length (32) | |
|---|
| 152 | | 4 |Opaque key (32) | |
|---|
| 153 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 154 | | |
|---|
| 155 | | The short keywords in the header format expand as follows: |
|---|
| 156 | | |
|---|
| 157 | | Mag Magic number. |
|---|
| 158 | | |
|---|
| 159 | | Cmd Command code. |
|---|
| 160 | | |
|---|
| 161 | | |
|---|
| 162 | | |
|---|
| 163 | | |
|---|
| 164 | | |
|---|
| 165 | | |
|---|
| 166 | | |
|---|
| 167 | | Aaron Stone Expires June 16, 2008 [Page 3] |
|---|
| 168 | | |
|---|
| 169 | | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| 170 | | |
|---|
| 171 | | |
|---|
| 172 | | Key length Length in bytes of the text key that follows the command |
|---|
| 173 | | extras. |
|---|
| 174 | | |
|---|
| 175 | | Stat Status of the response (non-zero on error). |
|---|
| 176 | | |
|---|
| 177 | | Resvd FIXME: Dustin, please remind me what this is? |
|---|
| 178 | | |
|---|
| 179 | | Len Length in bytes of the command extras. |
|---|
| 180 | | |
|---|
| 181 | | Type Reserved for future use (Sean is using this soon). |
|---|
| 182 | | |
|---|
| 183 | | Reserved Really reserved for future use (up for grabs). |
|---|
| 184 | | |
|---|
| 185 | | Total body length Length in bytes of extra + key + value. |
|---|
| 186 | | |
|---|
| 187 | | Opaque key Will be copied back to you in the response. |
|---|
| 188 | | |
|---|
| 189 | | General format of a packet: |
|---|
| 190 | | |
|---|
| 191 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 192 | | 1 |HEADER (16 bytes, per above) | |
|---|
| 193 | | 2 | | |
|---|
| 194 | | 3 | | |
|---|
| 195 | | 4 | | |
|---|
| 196 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 197 | | |Command-specific stuff | |
|---|
| 198 | | | (note length in byte 5) | |
|---|
| 199 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 200 | | |Key | |
|---|
| 201 | | | (note length in bytes 3-4) | |
|---|
| 202 | | | (never present in responses) | |
|---|
| 203 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 204 | | |Value | |
|---|
| 205 | | | (note length of bytes 9-12, | |
|---|
| 206 | | | minus extra length, | |
|---|
| 207 | | | minus key length) | |
|---|
| 208 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 209 | | |
|---|
| 210 | | |
|---|
| 211 | | 3. Magic values |
|---|
| | 190 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 191 | / | | | | |
|---|
| | 192 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 193 | +---------------+---------------+---------------+---------------+ |
|---|
| | 194 | 0| Magic | Opcode | Status | |
|---|
| | 195 | +---------------+---------------+---------------+---------------+ |
|---|
| | 196 | 4| Extras length | Data type | Reserved | |
|---|
| | 197 | +---------------+---------------+---------------+---------------+ |
|---|
| | 198 | 8| Total body length | |
|---|
| | 199 | +---------------+---------------+---------------+---------------+ |
|---|
| | 200 | 12| Message ID | |
|---|
| | 201 | +---------------+---------------+---------------+---------------+ |
|---|
| | 202 | Total 16 bytes |
|---|
| | 203 | |
|---|
| | 204 | Header fields: |
|---|
| | 205 | Magic Magic number. |
|---|
| | 206 | Opcode Command code. |
|---|
| | 207 | Key length Length in bytes of the text key that follows the |
|---|
| | 208 | command extras. |
|---|
| | 209 | Status Status of the response (non-zero on error). |
|---|
| | 210 | Extras length Length in bytes of the command extras. |
|---|
| | 211 | Data type Reserved for future use (Sean is using this |
|---|
| | 212 | soon). |
|---|
| | 213 | Reserved Really reserved for future use (up for grabs). |
|---|
| | 214 | Total body length Length in bytes of extra + key + value. |
|---|
| | 215 | Message ID Will be copied back to you in the response. |
|---|
| | 216 | FIXME: Can this be used to organize [UDP] |
|---|
| | 217 | packets? |
|---|
| | 218 | |
|---|
| | 219 | |
|---|
| | 220 | |
|---|
| | 221 | |
|---|
| | 222 | |
|---|
| | 223 | Aaron Stone Expires June 16, 2008 [Page 4] |
|---|
| | 224 | |
|---|
| | 225 | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| | 226 | |
|---|
| | 227 | |
|---|
| | 228 | 3. Defined Values |
|---|
| | 229 | |
|---|
| | 230 | 3.1. Magic Byte |
|---|
| | 231 | |
|---|
| | 232 | 0x80 Request packet for this protocol version |
|---|
| | 233 | 0x81 Response packet for this protocol version |
|---|
| 316 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 317 | | 1 |Amount (64) | |
|---|
| 318 | | 2 | | |
|---|
| 319 | | 3 |Initial value (64) | |
|---|
| 320 | | 4 | | |
|---|
| 321 | | 5 |Expiration (32) | |
|---|
| 322 | | +.1234567.1234567.1234567.1234567+ |
|---|
| 323 | | |
|---|
| 324 | | |
|---|
| 325 | | 5. Security Considerations |
|---|
| | 454 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 455 | / | | | | |
|---|
| | 456 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 457 | +---------------+---------------+---------------+---------------+ |
|---|
| | 458 | 0| Amount to add | |
|---|
| | 459 | | | |
|---|
| | 460 | +---------------+---------------+---------------+---------------+ |
|---|
| | 461 | 8| Initial value | |
|---|
| | 462 | | | |
|---|
| | 463 | +---------------+---------------+---------------+---------------+ |
|---|
| | 464 | 16| Expiration | |
|---|
| | 465 | +---------------+---------------+---------------+---------------+ |
|---|
| | 466 | Total 20 bytes |
|---|
| | 467 | |
|---|
| | 468 | These commands will either add or remove the specified amount to the |
|---|
| | 469 | requested counter. If the counter does not exist, one of two things |
|---|
| | 470 | may happen: |
|---|
| | 471 | 1. If the expiration value is all one-bits (0xffffffff), the |
|---|
| | 472 | operation will fail with NOT_FOUND. |
|---|
| | 473 | 2. For all other expiration values, the operation will succeed by |
|---|
| | 474 | seeding the value for this key with the provided initial value to |
|---|
| | 475 | expire with the provided expiration time. |
|---|
| | 476 | |
|---|
| | 477 | Note that in the creation case, flags will be set to zero (FIXME: |
|---|
| | 478 | Should they be provided here as well?) |
|---|
| | 479 | |
|---|
| | 480 | |
|---|
| | 481 | 5. Example Session |
|---|
| | 482 | |
|---|
| | 483 | We start up our application, and it asks for the value associated |
|---|
| | 484 | with the 'Hello' key. |
|---|
| | 485 | |
|---|
| | 486 | |
|---|
| | 487 | |
|---|
| | 488 | |
|---|
| | 489 | |
|---|
| | 490 | |
|---|
| | 491 | |
|---|
| | 492 | |
|---|
| | 493 | |
|---|
| | 494 | |
|---|
| | 495 | |
|---|
| | 496 | |
|---|
| | 497 | |
|---|
| | 498 | |
|---|
| | 499 | |
|---|
| | 500 | |
|---|
| | 501 | |
|---|
| | 502 | |
|---|
| | 503 | Aaron Stone Expires June 16, 2008 [Page 9] |
|---|
| | 504 | |
|---|
| | 505 | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| | 506 | |
|---|
| | 507 | |
|---|
| | 508 | Get request: |
|---|
| | 509 | |
|---|
| | 510 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 511 | / | | | | |
|---|
| | 512 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 513 | +---------------+---------------+---------------+---------------+ |
|---|
| | 514 | 0| 0x80 | 0x00 | 5 in big endian (BE) | |
|---|
| | 515 | +---------------+---------------+---------------+---------------+ |
|---|
| | 516 | | 12 in BE | 0x00 | | |
|---|
| | 517 | +---------------+---------------+---------------+---------------+ |
|---|
| | 518 | | 17 in BE | |
|---|
| | 519 | +---------------+---------------+---------------+---------------+ |
|---|
| | 520 | | 0xDEADBEEF | |
|---|
| | 521 | +---------------+---------------+---------------+---------------+ |
|---|
| | 522 | 16| 0x00000000 | |
|---|
| | 523 | +---------------+---------------+---------------+---------------+ |
|---|
| | 524 | 24| 0xDECAF 0x15 0xBAD 0xC0FFEE | |
|---|
| | 525 | | | |
|---|
| | 526 | +---------------+---------------+---------------+---------------+ |
|---|
| | 527 | 28| 'H' 'e' 'l' 'l' | |
|---|
| | 528 | | 'o' | |
|---|
| | 529 | +---------------+ |
|---|
| | 530 | Total 33 bytes (16 header + 12 get-extras + 5 key) |
|---|
| | 531 | |
|---|
| | 532 | Since nobody has set this key, it returns not found. |
|---|
| | 533 | |
|---|
| | 534 | Get response: |
|---|
| | 535 | |
|---|
| | 536 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 537 | / | | | | |
|---|
| | 538 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 539 | +---------------+---------------+---------------+---------------+ |
|---|
| | 540 | 0| 0x81 | 0x00 | 0x0001 | |
|---|
| | 541 | +---------------+---------------+---------------+---------------+ |
|---|
| | 542 | | 0 in BE | 0x00 | | |
|---|
| | 543 | +---------------+---------------+---------------+---------------+ |
|---|
| | 544 | | 0 in BE | |
|---|
| | 545 | +---------------+---------------+---------------+---------------+ |
|---|
| | 546 | | 0xDEADBEEF | |
|---|
| | 547 | +---------------+---------------+---------------+---------------+ |
|---|
| | 548 | Total 16 bytes |
|---|
| | 549 | |
|---|
| | 550 | Well, looks like we need to set the key! Let's set it to expire on |
|---|
| | 551 | December 15, 2007 at 9:51:09 PM. |
|---|
| | 552 | |
|---|
| | 553 | |
|---|
| | 554 | |
|---|
| | 555 | |
|---|
| | 556 | |
|---|
| | 557 | |
|---|
| | 558 | |
|---|
| | 559 | Aaron Stone Expires June 16, 2008 [Page 10] |
|---|
| | 560 | |
|---|
| | 561 | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| | 562 | |
|---|
| | 563 | |
|---|
| | 564 | Set request: |
|---|
| | 565 | |
|---|
| | 566 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 567 | / | | | | |
|---|
| | 568 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 569 | +---------------+---------------+---------------+---------------+ |
|---|
| | 570 | 0| 0x80 | 0x01 | 5 in BE | |
|---|
| | 571 | +---------------+---------------+---------------+---------------+ |
|---|
| | 572 | | 16 in BE | 0x00 | | |
|---|
| | 573 | +---------------+---------------+---------------+---------------+ |
|---|
| | 574 | | 26 in BE | |
|---|
| | 575 | +---------------+---------------+---------------+---------------+ |
|---|
| | 576 | | 0xDA7ABA5E | |
|---|
| | 577 | +---------------+---------------+---------------+---------------+ |
|---|
| | 578 | 16| 0x00000000 | |
|---|
| | 579 | +---------------+---------------+---------------+---------------+ |
|---|
| | 580 | 20| 0xDCCB4674 | |
|---|
| | 581 | +---------------+---------------+---------------+---------------+ |
|---|
| | 582 | 24| 0xDECAF 0x15 0xBAD 0xC0FFEE | |
|---|
| | 583 | | | |
|---|
| | 584 | +---------------+---------------+---------------+---------------+ |
|---|
| | 585 | 32| 'H' 'e' 'l' 'l' | |
|---|
| | 586 | | 'o' | 'W' 'o' 'r' | |
|---|
| | 587 | | 'l' 'd' | |
|---|
| | 588 | +---------------+---------------+ |
|---|
| | 589 | Total 42 bytes (16 header + 16 set-extras + 5 key + 5 value) |
|---|
| | 590 | |
|---|
| | 591 | The set succeeds. |
|---|
| | 592 | |
|---|
| | 593 | |
|---|
| | 594 | |
|---|
| | 595 | |
|---|
| | 596 | |
|---|
| | 597 | |
|---|
| | 598 | |
|---|
| | 599 | |
|---|
| | 600 | |
|---|
| | 601 | |
|---|
| | 602 | |
|---|
| | 603 | |
|---|
| | 604 | |
|---|
| | 605 | |
|---|
| | 606 | |
|---|
| | 607 | |
|---|
| | 608 | |
|---|
| | 609 | |
|---|
| | 610 | |
|---|
| | 611 | |
|---|
| | 612 | |
|---|
| | 613 | |
|---|
| | 614 | |
|---|
| | 615 | Aaron Stone Expires June 16, 2008 [Page 11] |
|---|
| | 616 | |
|---|
| | 617 | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| | 618 | |
|---|
| | 619 | |
|---|
| | 620 | Set response: |
|---|
| | 621 | |
|---|
| | 622 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 623 | / | | | | |
|---|
| | 624 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 625 | +---------------+---------------+---------------+---------------+ |
|---|
| | 626 | 0| 0x81 | 0x01 | 0x0000 | |
|---|
| | 627 | +---------------+---------------+---------------+---------------+ |
|---|
| | 628 | | 16 in BE | 0x00 | | |
|---|
| | 629 | +---------------+---------------+---------------+---------------+ |
|---|
| | 630 | | 16 in BE | |
|---|
| | 631 | +---------------+---------------+---------------+---------------+ |
|---|
| | 632 | | 0xDA7ABA5E | |
|---|
| | 633 | +---------------+---------------+---------------+---------------+ |
|---|
| | 634 | 16| 0x00000000 | |
|---|
| | 635 | +---------------+---------------+---------------+---------------+ |
|---|
| | 636 | 20| 0xDCCB4674 | |
|---|
| | 637 | +---------------+---------------+---------------+---------------+ |
|---|
| | 638 | 24| 0xDECAF 0x15 0xBAD 0xC0FFEE | |
|---|
| | 639 | | | |
|---|
| | 640 | +---------------+---------------+---------------+---------------+ |
|---|
| | 641 | Total 32 bytes (16 header + 16 set-extras) |
|---|
| | 642 | |
|---|
| | 643 | If the original get request is sent again, the key would be found. |
|---|
| | 644 | |
|---|
| | 645 | Get response: |
|---|
| | 646 | |
|---|
| | 647 | Byte/ 0 | 1 | 2 | 3 | |
|---|
| | 648 | / | | | | |
|---|
| | 649 | |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7| |
|---|
| | 650 | +---------------+---------------+---------------+---------------+ |
|---|
| | 651 | 0| 0x81 | 0x00 | 0x00 | | |
|---|
| | 652 | +---------------+---------------+---------------+---------------+ |
|---|
| | 653 | | 12 in BE | 0x00 | | |
|---|
| | 654 | +---------------+---------------+---------------+---------------+ |
|---|
| | 655 | | 17 in BE | |
|---|
| | 656 | +---------------+---------------+---------------+---------------+ |
|---|
| | 657 | | 0xDEADBEEF | |
|---|
| | 658 | +---------------+---------------+---------------+---------------+ |
|---|
| | 659 | 16| 0xDCCB4674 | |
|---|
| | 660 | +---------------+---------------+---------------+---------------+ |
|---|
| | 661 | 24| 0xDECAF 0x15 0xBAD 0xC0FFEE | |
|---|
| | 662 | | | |
|---|
| | 663 | +---------------+---------------+---------------+---------------+ |
|---|
| | 664 | 28| 'W' 'o' 'r' 'l' | |
|---|
| | 665 | | 'd' | |
|---|
| | 666 | +---------------+ |
|---|
| | 667 | Total 33 bytes (16 header + 12 get-extras + 5 value) |
|---|
| | 668 | |
|---|
| | 669 | |
|---|
| | 670 | |
|---|
| | 671 | Aaron Stone Expires June 16, 2008 [Page 12] |
|---|
| | 672 | |
|---|
| | 673 | Internet-Draft Memcache Binary Protocol December 2007 |
|---|
| | 674 | |
|---|
| | 675 | |
|---|
| | 676 | 6. Security Considerations |
|---|
| 347 | | Thanks to Brad Fitzpatrick, Sean Chittenden, Jonathan Steinert, Brian |
|---|
| 348 | | Aker, Chris Goffinet, Dustin Sailings, and Steven Grimm, for their |
|---|
| 349 | | work on the memcached server and client libraries in a variety of |
|---|
| | 695 | Thanks to Brad Fitzpatrick, Anatoly Vorobey, Steven Grimm, and Dustin |
|---|
| | 696 | Sallings, for their work on the memcached server. |
|---|
| | 697 | |
|---|
| | 698 | Thanks to Sean Chittenden, Jonathan Steinert, Brian Aker, Evan |
|---|
| | 699 | Martin, Nathan Neulinger, Eric Hodel, Michael Johnson, Paul Querna, |
|---|
| | 700 | Jamie McCarthy, Philip Neustrom, Andrew O'Brien, Josh Rotenberg, |
|---|
| | 701 | Robin H. Johnson, Tim Yardley, Paolo Borelli, Eli Bingham, Jean- |
|---|
| | 702 | Francois Bustarret, Paul G, Paul Lindner, Dormando, Dustin Sallings, |
|---|
| | 703 | Chris Goffinet, Tomash Brechko, and others for their work reporting |
|---|
| | 704 | bugs and maintaining memcached client libraries and bindings in many |
|---|