"Non-compliant Server" error message in Opera 5
This warning message is displayed VERY seldom (although, in special cases it may be triggered by a server slow to respond), and ONLY when Opera detects that a server appears to behave illegally according to the protocol standard that Opera implements. When this document was authored (April, 2000) Opera Software had only detected four servers which would trigger this message, and we know that two of those have fixed the problem.
The problem this message concerns will only appear while POSTing forms, it will not occur during normal browsing.
Without the code that causes the message to appear what the user would have experienced is the following:
- The user would press the submit button.
- Opera would start loading the document with the progress bar indicating "Sending request to server"
- Nothing more would happen, The user will have to cancel the request, or the server will have to close the connection.
The reason for the apparent "hang" is NOT that Opera sent a faulty request/form to the server (it didn't), but that the server does not follow the rules set by the standard used for the HTTP 1.1 protocol (which is the "language" that browsers and webservers use to "talk" with each other).
What happens in more detail is:
- Opera sends all the data in the form to the server.
- The server sends a "please continue" message to Opera that indicate that Opera should send the form data if it has not already done so (which Opera has, so Opera quite properly ignores the message). It is legal for a webserver to send this message, in case the browser has silently decided to wait before sending the data.
- What then happens is that the server ignores the form data that Opera already had sent, which is not allowed by the standard, and expects Opera to send the data only AFTER it received the "please continue" message.
- Because Opera has already sent the data, Opera does not resend the data, and the server is not able to complete the request (because it has thrown away the data).
In the cases where Opera received the "please continue" message, and it already sent the data, one might say that Opera says to itself "If this server does not return an answer in 40 seconds, it is not going to answer, ever." Opera indicates this by showing the message "Activated 40 second timeout. Waiting for data..." in the progress-bar.
If the server does not answer within this time limit, Opera will permanently register the server in Opera's ini-file. This setting will prevent the problem from appearing later. Opera will then show the warning message to the user.
The reason why Opera displays the message is to warn the user that there is a problem with the site. After having acknowledged the message, the user must resubmit the form if he, or she, wants to. The reason why Opera does not do so automatically is that IF the server was only slow to answer, submitting the form twice could, for example, cause you to file a purchase order twice.
Normally, in cases such as login and section selection forms (which was where Opera Software encountered this problem) resubmitting the form is not a problem. However, if the form was (e.g.) a purchase order, be careful.
If you encounter this message you should immediately inform the webmaster/Support of the site, and refer them to this page, or to Opera Software technical support.
To the developers of sites that trigger this warning
What you need to do to your server is to make sure that your server or scripts do not ignore ANY "entity" content that it receives following the request headers, even before you send the "100 Continue" response, which you ought not do if you have already received some of the body of the POST form.
You can find the necessary information about how the "Expect: 100-continue" header, and the "100 Continue" is supposed to work in the HTTP 1.1 standard (RFC 2616) section 8.2.3, page 48, or the postscript version) section 8.2.3, page 30.
Support search
Search our knowledge base:
