(dump author unknown) deep understanding of HTML protocol

Source: Internet
Author: User
Tags ack date time stamp html header local time md5 digest response code rfc

Deep understanding of HTML Protocol HTTP Protocol Learning Series 1. Basic Concept Article 1.1 describes HTTP is an abbreviation for the Hyper Text Transfer Protocol (Hypertext Transfer Protocol). Its development was the result of collaboration between the World Wide Web Association (Wide) and the Internet Working Group IETF (Internet Engineering Task Force), which eventually released a series of RFC,RFC 1945 defines the http/1.0 version. The most notable of these is RFC 2616. RFC 2616 defines a version of--http 1.1 that is commonly used today. The HTTP protocol (hypertext Transfer Protocol, Hypertext Transfer Protocol) is the transfer protocol used to transfer the text from the WWW server to the local browser. It can make the browser more efficient and reduce the network transmission. It not only ensures that the computer transmits hypertext documents correctly and quickly, but also determines which part of the document is being transmitted, and which content is displayed first (such as text before graphics), and so on. HTTP is an application-layer protocol that consists of requests and responses and is a standard client server model. HTTP is a stateless protocol. 1.2 Location in the TCP/IP protocol stack The HTTP protocol is usually hosted on top of the TCP protocol, sometimes hosted on a TLS or SSL protocol layer, which is what we often call HTTPS. As shown in: The port number for the default HTTP 80,HTTPS is 443. 1.3 HTTP Request Response Model the HTTP protocol is always a client-initiated request, and the server echoes the response. See: This restricts the use of the HTTP protocol and cannot be implemented when the client does not initiate a request, the server pushes the message to the client. The HTTP protocol is a stateless protocol, and there is no correspondence between this request and the last request of the same client. 1.4 Workflow Once an HTTP operation is called a transaction, its working process can be divided into four steps: 1) First the client and the server need to establish a connection. As soon as you click on a hyperlink, the HTTP work begins. 2) After the connection is established, the client sends a request to the server in the form of a Uniform Resource Identifier (URL), protocol version number, followed by MIME information including the request modifier, client information, and possible content. 3) When the server receives the request, it gives the corresponding response information in the form of a status line, including the protocol version number of the information, a successful or incorrect code, followed by MIME information including server information, entity information, and possible content. 4) The information returned by the client receiving server is displayed on the user's display by the browser, and then the client disconnects from the server. If a step in the above procedure appearsError, the information that generates the error is returned to the client, with the display output. For the user, these processes are done by HTTP itself, the user just click with the mouse, waiting for information to display it. 1.5 use Wireshark catch TCP, HTTP packet open Wireshark, select "Capture" and "Options" on the toolbar, interface selection 1 is shown: Figure 1 Setting Capture options The general reader only needs to select the top drop-down box, Select the appropriate device, then click on "Capture Filter", here you select "HTTP TCP port (80)", select the click of "Start" to start to grab the packet. Figure 2 Select Capture Filter For example, open http://image.baidu.com/in the browser, grab package 3 as shown: http://www.blogjava.net/images/blogjava_net/amigoxie/ 40799/o_http%e5%8d%8f%e8%ae%ae%e5%ad%a6%e4%b9%a0-%e6%a6%82%e5%bf%b5-3.jpg Figure 3 grasping the bag in, You can clearly see the client browser (IP 192.168.2.33) interacting with the server: 1) No1: The browser (192.168.2.33) makes a connection request to the server (220.181.50.118). This is the first step of the TCP three-time handshake, as you can see, for syn,seq:x (x= 0) 2) No2: the server (220.181.50.118) responds to the request of the browser (192.168.2.33) and asks for confirmation at this time: Syn,ack, at which time Seq:y (Y is 0), ack:x+1 (1). This is the second step of the three handshake, 3) No3: The browser (192.168.2.33) responded to the confirmation of the server (220.181.50.118) and the connection was successful. As: ACK, at this time seq:x+1 (for 1), ack:y+1 (for 1). This is the third step of the three-time handshake ; 4) No4: The browser (192.168.2.33) issues a page HTTP request, 5) No5: Server (220.181.50.118) acknowledgement, 6) No6: Server (220.181.50.118) send data; 7) No7: Client (192.168.2.33) confirm; 8) No14: Client (192.168.2.33) sends a picture HTTP request, 9) NO15: Server (220.181.50.118) Send status response code ... 1.6 Header fields Each header field consists of a domain name, colon(:) and the domain value are composed of three parts. Domain names are case-insensitive, you can add any number of whitespace before the domain value, and the header field can be expanded to multiple lines, at the beginning of each line, with at least one space or tab. In the picture of the clutch, the No14 point opens to see 4: http://www.blogjava.net/images/blogjava_net/amigoxie/40799/o_http%e5%8d%8f%e8%ae%ae%e5%ad% A6%e4%b9%a0-%e6%a6%82%e5%bf%b5-4.jpg Figure 4 The HTTP request message responds with message 5: Figure 5 HTTP status Response information 1.6.1 The host header domain specifies the intenet hosts and port numbers for the requested resource, Must represent the location of the originating server or gateway that requested the URL. The http/1.1 request must contain the host header domain or the system will return with a 400 status code. Figure 5 Host Behavior: 1.6.2 referer header domain referer header domain allows the client to specify the source resource address of the request URI, which allows the server to generate a fallback list that can be used to log in, optimize the cache, and so on. He also allows the abolition or wrong connection to be traced for maintenance purposes. If the requested URI does not have its own URI address, Referer cannot be sent. If you specify a partial URI address, this address should be a relative address. In Figure 4, the contents of the Referer line are: 1.6.3 user-agent header domain user-agent the contents of the header domain contain the user information that made the request. In Figure 4, the contents of the User-agent line are: Http://www.blogjava.net/images/blogjava_net/amigoxie/40799/o_http%e5%8d%8f%e8%ae%ae%e5%ad The%a6%e4%b9%a0-%e6%a6%82%e5%bf%b5-8.jpg1.6.4 cache-control header domain Cache-control Specifies the caching mechanism that requests and responses follow. Setting Cache-control in a request message or response message does not modify the caching process in another message processing process. The cache directives for the request include No-cache, No-store, Max-age, Max-stale, Min-fresh, only-if-cached, and the instructions in the response message include public, private, No-cache, No-store, No-transform, Must-revalidate, Proxy-revalidate, Max-age. In Figure 5The header field is: 1.6.5 Date Header field The Date Header field represents the time the message was sent, and the time description format is defined by rfc822. For example, Date:mon,31dec200104:25:57gmt. The time described by date represents the world standard, which translates into local time and needs to know the time zone in which the user is located. In Figure 5, the header field is as follows: Several important concepts of 1.7 HTTP 1.7.1 Connection: Connection The actual circulation of a transport layer, which is built between two applications that communicate with one another. It is possible to have a connection header in both the Http1.1,request and reponse headers, which means how long links are handled when client and server communicate. In http1.1, both the client and server are the default counterparts that support long links, If the client uses the HTTP1.1 protocol, but does not want to use long links, it is necessary to indicate in the header that the value of connection is close, and if the server side does not want to support long links, it is also necessary to specify in response that the value of connection is close. A connection with a value of close is included in the header of either request or response, indicating that the TCP link currently in use is broken when the request is processed on the same day. A new TCP link must be created in the future when the client makes a new request. 1.7.2 Message: The basic unit of Messagehttp communication, including a structured eight-tuple sequence and transmission via a connection. 1.7.3 Request: Requests a request from the client to the server includes the method that is applied to the resource, the identifier of the resource, and the version number of the protocol. 1.7.4 Response: Response A message returned from the server includes the version number of the HTTP protocol, the status of the request (such as "succeeded" or "not Found"), and the MIME type of the document. 1.7.5 Resource: Resource The network data object or service identified by the URI. 1.7.6 entities: An Entity Data resource or a special representation of a callback from a service resource, which may be surrounded by a request or response message. An entity includes entity header information and the entity's own content. 1.7.7 Client: A client an application that establishes a connection for the purpose of sending a request. 1.7.8 User agent: UserAgent Initializes a client for the request. They are browsers, editors, or other user tools. 1.7.9 Server: Server An application that accepts a connection and returns information to the request. 1.7.10 Source server: Originserver is a given resource that can beThe server on which it resides or is created. 1.7.11 Proxy: Proxy an intermediary program that can act as a server, or act as a client, to create requests for other clients. Requests are either internally or passed to other servers through possible translations. An agent must interpret and overwrite it if possible before sending the request information. Proxies are often used as portals through the firewall's client side, and proxies can be used as a help app to handle requests that are not completed by the user agent through the protocol. 1.7.12 Gateways: Gateway a server that acts as an intermediary for other servers. Unlike the proxy, the gateway accepts the request as if it were the source server for the requested resource, and the requesting client is unaware that it is dealing with the gateway. Gateways are often used as server-side portals through firewalls, and gateways can be used as a protocol translator to access resources stored in non-HTTP systems. 1.7.13 Channel: Tunnel is a broker that acts as a relay for two connections. Once activated, the channel is considered not to be an HTTP communication, although the channel may be initialized by an HTTP request. The channel disappears when both ends of the relayed connection are closed. A channel is often used when a portal must exist or the intermediary (intermediary) cannot interpret the relay's traffic. 1.7.14 caching: Local storage of cache response information. Appendix: Reference "HTTP_ Baidu Encyclopedia": http://baike.baidu.com/view/9472.htm "result encoding and HTTP status Response code": http://blog.tieniu1980.cn/archives/377 Three-time handshake analysis of TCP: http://cache.baidu.com/c?m= 9f65cb4a8c8507ed4fece763104c8c711923d030678197027fa3c215cc7905141130a8e5747e0d548d98297a5ae91e03f7f63772315477e3cacdd94cd Bbdc42225d82c36734f844315c419d891007a9f34d507a9f916a2e1b065d2f48193864353bb15543897f1fb4d711edd1b86033093b1e94e022e67adec 40728e2e605f983431c5508fe4&p=c6769a46c5820efd08e2973b42&user=baidu "Using Wireshark to detect an HTTP connection process": HTTP://BLog.163.com/wangbo_tester/blog/static/12806792120098174162288/Several important concepts of the HTTP protocol: http://nc.mofcom.gov.cn/news/ 10819972.html the role of connection in the HTTP protocol: http://blog.csdn.net/barfoo/archive/2008/06/05/2514667.aspx 2. The protocol 2.1 http/1.0 and http/1.1 are compared in RFC 1945, which defines the http/1.0 version, and RFC 2616 defines the http/1.1 version. The author has provided these two Chinese versions of the RFC in the blog. rfc1945:http://www.blogjava.net/files/amigoxie/rfc1945 (HTTP) Chinese version. rarrfc2616:http://www.blogjava.net/files/ amigoxie/rfc2616 (HTTP) Chinese version. rar2.1.1 to establish a connection http/1.0 each request requires a new TCP connection and the connection cannot be reused. http/1.1 a new request can be sent on top of the last TCP connection that was requested, and the connection can be reused. The advantage is to reduce the overhead of repeating the TCP three handshake and increase the efficiency. Note: In the same TCP connection, the new request needs to wait until the last request receives a response before it can be sent. 2.1.2 Host Domain HTTP1.1 has a host domain in the request message header, HTTP1.0 does not have this domain. eg:get/pub/www/theproject.html http/1.1 Host:www.w3.org may HTTP1.0 that when a TCP connection is established, an IP address is specified, and there is only one Host on the IP address. 2.1.3 Date Time stamp (receive direction) either HTTP1.0 or HTTP1.1, be able to parse the following three kinds of Date/time Stamp:sun, 1994 08:49:37 GMT; RFC 822, updated by RFC 1123Sunday, 06-nov-94 08:49:37 GMT; RFC 850, obsoleted by RFC 1036Sun Nov 6 08:49:37 1994; ANSI C ' s asctime () format (send direction) HTTP1.0 Date/time stamp;http1.1 that cannot generate a third Asctime format require that only date/time stamp in RFC 1123 (first) format be generated. 2.1.4 Status Response Code State Response Code (Continue) status code, allows the client to use the request header to test the server before sending the request message body, to see if the server should receive the request body, Decide if you want to send the request body again. After the client contains Expect:100-continue server in the request header, the client continues to send the request body if the Continue status code is returned. This is HTTP1.1. In addition, the http/1.1 101, 203, 205 and other sexual status response code 2.1.5 Request Method HTTP1.1 added options, PUT, DELETE, TRACE, connect these request methods. Method = " Options "; Section 9.2 | "GET"; Section 9.3 | "HEAD"; Section 9.4 | "POST"; Section 9.5 | "PUT"; Section 9.6 | "DELETE"; Section 9.7 | "TRACE"; Section 9.8 | "CONNECT"; Section 9.9 | Extension-method Extension-method = token2.2 HTTP Request message 2.2.1 Request message format Request message format is as follows: Request line General Information Header | Request Header | Entity header CRLF (carriage return Line) entity content where "request Line" As: Request line = method [space] request URI [space] version number [carriage return line] Request row instance: eg1:get/index.html http/1.1 eg2:post http://192.168.2.217:8080/index.jsp http/ 1.1HTTP Request Message instance: get/hello.htm http/1.1accept: */*accept-language:zh-cnaccept-encoding:gzip, deflateif-modified-since:wed, Oct 2007 02:15:55 gmtif-none-match:w/"158-1192587355000" user-agent:mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) host:192.168.2.162:8080connection:keep-alive2.2.2 Request method HTTP request methods include the following: Q GETq postq headq putq Deleteq optionsq The format of the HTTP response message in the TRACEQ CONNECT2.3 HTTP response message 2.3.1 Response message format is as follows: state line general Information Header | response header | Entity header CRLF entity contents where: status line = version number [space] status code [space] reason [carriage return line] Example of status line: eg1:http/1.0-OK eg2:http/1.1 The HTTP response message instance of the Request is as follows: http/1.1 oketag:w/"158-1192590101000" last-modified:wed, Oct 03:01:41 gmtcontent-type:text/htmlcontent-length:158date:wed, Oct 03:01:59 GMTS erver:apache-coyote/1.12.3.2 HTTP Status Response code 2.3.2.1 1**: Request received, continue processing 100--customer must continue to make a request 101--customer requests that the server convert the HTTP protocol version according to the request 2.3.2.2 2** : The operation successfully received, analysis, accept 200--transaction successful 201--prompt know the new file url202--accept and processing, but processing incomplete 203--return information is not determined or incomplete 204--request received, but the return information is empty 205--the server completed the request, The user agent must reset the currently browsed file 206--the server has completed a GET request for some of the users 2.3.2.3 3**: The resource that completes this request must be further processed 300--requested resources can be 301--delete request data in multiple places 302-- The request data is found at other addresses 303--the client is advised to access other URLs or Access methods 304--clients have performed get, but the file has not changed 305--the requested resource must get the code that was used in the previous version of HTTP from the address specified by the server, 307 is no longer used in the current version--affirm that the requested resource is temporarily deleted 2.3.2.4 4**: request contains an error syntax or cannot complete 400--error request, such as syntax error 401--unauthorized HTTP 401.1-Unauthorized: Logon failure http 401.2-Unauthorized: Server configuration issue causes logon failure HT TP 401.3-acl Disable access to resource HTTP 401.4-Unauthorized: Authorization denied by filter HTTP 401.5-Unauthorized: ISAPI or CGI authorization failed 402--reserved valid Chargeto header response 403--Forbidden access to HTTP 403.1 Forbidden Stop access: Prohibit executable access HTTP 403.2-Forbidden: Disable Read access HTTP 403.3-Forbidden: Prohibit write access HTTP 403.4-Forbidden: Require SSL HTTP 403.5-Forbidden: Require SSL-HTT P 403.6-Forbidden: IP address denied HTTP 403.7-Forbidden: Require client certificate HTTP 403.8-Forbidden: Prohibit site access HTTP 403.9-Forbidden: Too many users connected to HTTP 403.10-No access : Invalid configuration http 403.11-Forbidden: Password change http 403.12-Forbidden: Mapper denies access to HTTP 403.13-Forbidden: Client certificate has been revoked HTTP 403.15-Forbidden: Too many Client access licenses HTTP 403.16-Forbidden: Client certificate is untrusted or invalid HTTP 403.17-Forbidden: Client certificate has expired or has not been in effect 404--no file, query, or url405--user Defined method in request-line field is allowed 406-- According to the user sent by the accept drag, the request resource is not accessible 407--similar to 401, the user must first be authorized on the proxy server 408--the client does not complete the request within the user-specified time of starvation 409--to the current resource state, the request cannot be completed 410-- This resource is no longer available on the server and no further reference address 411--server rejects user-defined Content-length property request 412--One or more request header fields in the current request error 413--the requested resource is greater than the size allowed by the server 414-- The requested resource URL is longer than the length of the server allowed 415--request resource does not support request item format 416--request contains a range request header field that does not have a range indication value within the current request resource scope, the request also does not contain the If-range request header field 417--The server does not meet the expectations specified by the request Expect header field, and if it is a proxy server, the next level of server may not meet the request length.   2.3.2.5 5**: Server performs a fully valid request HTTP 500-Internal server error HTTP 500.100-Internal server Error-ASP error HTTP 500-11 server shutdown HTTP 500-12 application restart HTTP 500-13-Server too busy HTTP 500-14-application Invalid HTTP 500-15-not allowed request Global.asa error 501-not implemented HTTP 502-Gateway error 2.4 using Telnet for H The TTP test is available under Windows, using a command window for simple HTTP testing. Enter cmd into the command window, type the following command at the command line and press ENTER: Telnet www.baidu.com 80 and then press ENTER after pressing "CTRL +]" in the window to return the results. Then start sending a request message, for example, send the following request message request Baidu's home page message, the use of the HTTP protocol for http/1.1:get/index.html http/1.1 Note: Copy the message to the command window after you need to press two carriage return to get a response message , the first carriage return is a line break after the command, which is required by the HTTP protocol. The second one is to confirm the input and send the request. You can see a message that returns a $ OK, as shown in: As you can see, when http/1.1 is used, the connection is not broken at the end of the request. If you are using HTTP1.0, type: get/index.html http/1.0 at the command window, you can see the disconnect immediately after the request ends. Readers can also try to use GET or post, such as with the top field information, for example, type the following information: get/index.html http/1.1connection:closehost:www.baidu.com2.5 commonly used request method, please The approach is get and post.l get method: is to get the information of the resource specified by the request URI as an entity, if the request URI is only a data generation process, then the final return in the response entity is the resource that the result of the processing process points to, not the description of the process. L Post: Used to make a request to the destination server that it accepts the entity attached to the request and treats it as an additional new subkey for the resource specified by the request URI in the request queue, and the post is designedThe following functions are implemented in a unified manner: 1: Interpretation of existing resources; 2: Send messages to bulletin boards, newsgroups, mailing lists, or similar discussion groups; 3: submit data blocks; 4: Extend the database with additional operations. As can be seen from the description above, get is a request to send data to the server, while post is a request to submit data to the server, the data to be submitted is in the entity behind the information header. The Get and Post methods have the following differences: (1) on the client side, the Get method submits the data through the URL, the data is visible in the URL, the Post method, and the data is submitted in the HTML header. (2) The data submitted by the Get method can only have up to 1024 bytes, while post does not have this limit. (3) Security issues. As mentioned in (1), when you use Get, the parameters are displayed on the address bar, and Post does not. So, if the data is in Chinese and is non-sensitive, then use get; If the user enters data that is not a Chinese character and contains sensitive data, then it is better to use post. (4) Safe and idempotent. The so-called security means that the operation is used to obtain information rather than modify information. Idempotent means that multiple requests to the same URL should return the same result. The complete definition is not as strict as it seems. In other words, GET requests generally should not have side effects. Fundamentally, the goal is that when a user opens a link, she can be confident that the resource has not changed from its point of view. For example, the front page of news sites is constantly being updated. Although the second request returns a different batch of news, the operation is still considered safe and idempotent, as it always returns the current news. Vice versa. The POST request is not that easy. POST represents a request that might change resources on the server. Still take the news site as an example, the reader's comments on the article should be implemented through the POST request because the site is different after the annotation is submitted (for example, an annotation appears below the article). 2.6 Request Header HTTP The most common request headers are as follows: L Accept: Browser acceptable MIME type, L Accept-charset: Browser acceptable character set, L Accept-encoding: The browser can decode the data encoding method, such as Gzip. The servlet can return a GZIP-encoded HTML page to a browser that supports gzip. In many cases this can be reduced by 5 to 10 times times the download time; l Accept-language: The type of language the browser wishes to use when the server is able to provide more than one language version; L Authorization: Authorization information, Usually appears in the answer to the Www-authenticate header sent to the server; L ConnectioN: Indicates whether a persistent connection is required. If the servlet sees the value here as "keep-alive", or sees the request using an HTTP 1.1 (HTTP 1.1 is persistent by default), it can take advantage of the persistent connection, when the page contains multiple elements (such as applets, pictures), Significantly reduce the time it takes to download. To do this, the servlet needs to send a content-length header in the answer, and the simplest implementation is to write the content to Bytearrayoutputstream first and then calculate its size before formally writing the content; Content-length: Indicates the length of the request message body; L Cookie: This is one of the most important request header information; L From: The email address of the requesting sender, which is used by some special Web client, which is not used by the browser; L Host: The primary in the initial URL Machine and Port; L If-modified-since: Returns the 304 "not Modified" answer only if the requested content has been modified after the specified date; L Pragma: Specify "No-cache" The value indicates that the server must return a refreshed document, even if it is a proxy server and has a local copy of the page; L Referer: Contains a URL from which the user accesses the currently requested page from the page represented by the URL. L User-agent: Browser type, this value is useful if the content returned by the servlet is related to the browser type; l UA-PIXELS,UA-COLOR,UA-OS,UA-CPU: A nonstandard request header sent by some versions of Internet Explorer to indicate the screen size , color depth, operating system, and CPU type. 2.7 Response header HTTP The most common response headers are as follows: L Allow: What request methods are supported by the server (such as GET, post, etc.), L Content-encoding: Document Encoding (Encode) method. The content type specified by the Content-type header can be obtained only after decoding. Using gzip to compress documents can significantly reduce the download time of HTML documents. Java's gzipoutputstream can be easily gzip compressed, but only on Unix Netscape and IE 4, ie 5 on Windows. Therefore, the servlet should check whether the browser supports gzip by looking at the accept-encoding header (that is, Request.getheader ("accept-encoding")). Returns a gzip-compressed HTML page for a browser that supports GZIP,Other browsers return to normal pages; L Content-length: Indicates the content length. This data is only required if the browser is using a persistent HTTP connection. If you want to take advantage of the persistent connection, you can write the output document to Bytearrayoutputstram, look at its size when done, then put that value into the Content-length header and finally pass the Bytearraystream.writeto ( Response.getoutputstream () send content; L Content-type: Indicates what MIME type the following document belongs to. The servlet defaults to Text/plain, but it usually needs to be explicitly specified as text/html. Because Content-type is often set up, HttpServletResponse provides a dedicated method Setcontenttyep. The corresponding relationship of the extension and MIME type can be configured in the Web. xml file; L Date: The current GMT time. You can use Setdateheader to set this header to avoid the hassle of converting the time format; L Expires: Indicates when the document should be considered to have expired and thus no longer caches it. L Last-modified: The last time the document was changed. The customer can provide a date through the If-modified-since request header, which is treated as a conditional get, and only documents that have been modified later than the specified time are returned, otherwise a 304 (not Modified) state is returned. Last-modified can also be set using the Setdateheader method; L Location: indicates where the customer should go to extract the document. Location is usually not set directly, but through the HttpServletResponse Sendredirect method, which sets the status code to 302;l refresh: Indicates how much time the browser should refresh the document, in seconds. In addition to refreshing the current document, you can also pass SetHeader ("Refresh", "5; Url=http://host/path ") lets the browser read the specified page. Note This functionality is typically done by setting the HTML page Head area, because automatic refresh or redirection is important for HTML writers who cannot use CGI or servlets. For Servlets, however, it is more convenient to set the refresh header directly. Note that the meaning of refresh is "refresh this page after n seconds or visit the specified page" instead of "refresh this page every n seconds or visit the specified page". Therefore, continuous refresh requires an R to be sent each timeThe Efresh header, while sending a 204 status code, prevents the browser from continuing to refresh, either with the refresh header or the. Note that the refresh header is not part of the HTTP 1.1 formal specification, but rather an extension, but both Netscape and IE support it. 2.8 Entity Head entity header The meta-information of sitting entity content describes the attributes of entity content, including entity information type, length, compression method, last modification time, data validity, etc. L ALLOW:GET,POSTL content-encoding: Document Encoding (Encode) method, for example: gzip, see "2.5 response header"; L Content-language: The language type of the content, for example: Zh-cn;l Content-length: Indicates the content length, eg:80, can refer to "2.5 response header", L Content-location: indicates where the customer should go to extract the document, for example: Http://www.dfdf.org/dfdf.html, refer to " 2.5 response Header "; a MD5 Digest of the CONTENT-MD5:MD5 entity, used as a checksum. Both the sender and the receiver calculate the MD5 summary, and the recipient compares the value that it calculates with the value passed in this header. EG1:CONTENT-MD5:

(dump author unknown) in-depth understanding of HTML protocol

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.