HEAD APEX http request behavior

We have encountered a problem with APEX and how applications respond to http HEAD requests.  Initially, we are requested if it was something in our APEX/ADR/Tomcat configuration, but have now turned up a similar behavior in other places.

For example, look at the output of these:

CURL - v - url https://asktom.Oracle.com/pls/Apex/f?p=100:1:0 2 > & 1 | grep HTTP

> GET/pls/apex/f? p = 100:1:0 HTTP/1.1

< HTTP/1.1 200 OK

curl - v - I-url https://asktom.Oracle.com/pls/Apex/f?p=100:1:0 2 > & 1 | grep HTTP

> HEAD/pls/apex/f? p = 100:1:0 HTTP/1.1

< HTTP/1.1 404 not found

However:

curl - v - I-url https://asktom.Oracle.com/i/ 2 > & 1 | grep HTTP

> HEAD is HTTP/1.1

< HTTP/1.1 200 OK

HTTP/1.1 200 OK

And this example:

wget d https://Apex.Oracle.com/pls/Apex/f?p=22927 2 > & 1 | grep HTTP

GET/pls/apex/f? p = 22927 HTTP/1.0

Query HTTP sent, awaiting response...

HTTP/1.1 302 moved temporarily

GET/pls/apex/f? p = 22927:1:0 HTTP/1.0

Query HTTP sent, awaiting response...

HTTP/1.1 302 moved temporarily

GET/pls/apex/f? p = 22927:1:0: HTTP/1.0

Query HTTP sent, awaiting response...

HTTP/1.1 200 OK

wget d - spider https://Apex.Oracle.com/pls/Apex/f?p=22927 2 > & 1 | grep HTTP

HEAD/pls/apex/f? p = 22927 HTTP/1.0

Query HTTP sent, awaiting response...

HTTP/1.1 404 not found

In summary a GET to the URL request Apex returns a 200 response (or an intermediary 302), but a HEAD request to the same URL return 404.

A client of ours uses the http HEAD requests to validate published URLs and triggers a follow-up error if a 404 error.  In our case, the URL is exposed through an APEX application and the 404 is encountered.

Please can someone explain what is happening here and why.

Thank you very much.

Post edited by: climatedb

Hi "climatedb"

I have good and bad news.

Good news: you have helped to identify a bug (Bug 20601219), filed against Oracle REST Data Services.  Not short, there is no support for HEAD when you apply through the gateway PL/SQL (the piece of logic that makes the call to the APEX engine).

Bad news: until this is resolved in a future release of Oracle REST Data Services, we are not aware of any type of workaround.  Using mod_rewrite or any other technology to rewrite to convert the HEAD request to a GET request may * not * be enough.

Joel

Tags: Database

Similar Questions

  • Firefox abandons his silently http request within 60 seconds

    • Summary

    Firefox abandons its http request in nearly 60 seconds (period till)
    waiting time varies) and says nothing to users. This has happened at a time of
    Nginx and Apache.

    • Environment

    Client browser: Firefox 35.0.1
    Client OS: Windows 7 Enterprise 32-bit SP1
    Web server: Apache 2.2.3 - 91 & 1.6.2 - 1 of Nginx
    Server operating system: CentOS 5.11
    PHP: 5.3.3
    FastCGI: spawn-fcgi(3) - 1.6.3 - 1

    • Description of the problem

    I noticed that nginx record 499 http response code so often.

    Nginx is used almost only to two web applications, one based on PHP
    and others on ruby. We encounter this problem in both applications. The server and the client PC belong to the same subnet.

    Since last month, nginx logged 624 errors for Firefox and 16 others
    browsers (IE, almost).

    For the test, so I wrote a simple PHP (see bottom of article) and I tried to access
    Thanks to these two Apache and Nginx with 35.0.1 Firefox and IE 11. IE11
    waited for 120 seconds and returned html successfully through two nginx
    and Apache, but Firefox has failed or the other.

    Let me describe the behavior of Firefox.

    1. Enter the test php url in the address bar, and then press ENTER.
    2. the message "waiting for response from the server" appears in the status bar for a while.
    3. watch the conversation network through Wireshark, signals 'Keep Alive'
    are repeated several times between server and client, and after that,
    4. the message disappears. 'END' signal is sent to the server, the client, just after that. Firebug newspapers 'Aborted' to the almost at the same time.
    5. the responses from the server ' END ACK.

    There is a difference of bit with nginx and Apache behavior after ' END
    ACK "."

    A.Nginx

    Nginx logs '499' error and end the conversation immediately.

    B.Apache is not connect anthying at this stage. After 120 seconds (sleep timer
    in PHP) of the request, it returns html expected. Of course Firefox doesn't make it, but I could confirm both request and response of the "Follow TCP Stream" of Wireshark function. Finally, it is saved with the http status code 200 to the httpd log file.

    I repeated this test several times. Actual expiration time varies from 22
    70 seconds but the results are the same.

    To my knowledge, the browser should display "timeout error".
    After such a situation, but it only shows nothing. If the end user does not
    find out what happened.

    ---

    • What I tried to solve the problem
    • Disable all other than firebug extensions.
    • 'network.tcp.keepalive.enabled' set to false in: config.
    • the value "network.http.spdy.enabled" fake, too.
    • the "network.http.response.timeout" value 0.
    • Mobile IPV6 and DNS prefetch, seeing what follows to help.

    https://support.Mozilla.org/en-us/KB/websites-Don

    • past Timeout to 0 to http.conf to apche.

    My goal is to make our web applications to work correctly in our work environment. I have recommended Firefox to colleagues because it was a very cool application. Change the default brawser is a nightmare for me. Any suggestions are welcome.

    ---
    < php test >
    Sleep (120);
    echo time();

    Dear jscher2000

    I saw your site with my Firefox twice and there is no expiration time. After 120 seconds, Firefox has made text "sleep 120 seconds before generating the HTML."

    If this isn't the problem in Firefox, but our network or server or both of them.

    Thanks to you all. I will try to pinpoint the cause of our problem.

  • Error when creating a Web Service reference. ORA-29273: HTTP request failed ORA-12535: TNS:operation expired

    I have a need to call a web service from an APEX application, so I thought I'd try to experience everything first call a web service that is accessible to the public from W3Schools.  The URL of the WSDL that I use is:

    http://www.w3schools.com/webservices/TempConvert.asmx?WSDL

    The 1st thing I try in APEX is to create a Web Service based on the above URL reference.  Problem is that I get the following error:

    ORA-29273: HTTP request failed ORA-12535: TNS:operation expired

    Any ideas?

    I even tried with some other URL WSDL and always the same exact error.

    Thanks in advance.

    Hello

    Maybe your database server have firewall that blocks to internet connection?

    Kind regards
    Jari

  • The/apex/listenerConfigure requested URL was not found on this server

    Please help me...

    After running in the command prompt (java-jar c:\apex.war) to install the earpiece of the apex.
    I have error when I call link http://localhost: 8080/apex/listenerConfigure.

    In the browser displays:

    Not found
    The/apex/listenerConfigure requested URL was not found on this server

    How can I fix this error?


    Thx  :)  :)  :)

    How to mark this thread?

    It seems that you have marked threads as answered present. ;) Probably, you will also find a way to mark messages like 'proper' or 'helpful '...

    at this point, I select complete development environment for the execution environment of this stage is spent. is it good?

    Fix.

    next step is 3.3.3 change the password of the ADMIN account, I think that this step went too couse I read
    "In a new installation of the Oracle Application Express, or if you convert a runtime environment in a development environment, you must change the internal ADMIN account password. In an upgrade scenario, the password is retained and carried over from the prior release. "is right?

    Well, it depends on... You have installed APEX the first time, you do not have a new facility. Anyway, it does not hurt to reset this password... After all, you have validated, you don't know, right? So the only option you have to meet her anyway...

    and a question again, how do to restart proses in point 3.3.4 restart the process?

    Documentation is actually a bit confusing, as this whole section applies only to installation with the APEX listener, so usually there is no Oracle HTTP Server must be restarted. Service that you do not want to restart the listener APEX itself.

    -Udo

  • How to send a document in net. HTTP.request as a POST variable?

    I have read and reread the doc on the net. HTTP.request and he says I can pass an argument to oRequest, but I failed to pass in the current document, which is what I want to do.

    I tried app.activeDocs [0], or the encoding of a string, but if he makes the call with no error, nothing is sent.

    ORequest must be a single document, or a variable consisting of name-value pairs? How to send multiple parameters to a POSITION otherwise?

    I did very well with the call using GET, but when I tried to send the document as a GET variable, I did nothing either.

    I send to an end point of LiveCycle REST so either POST or GET is fine.

    Thank you!

    Validating the document current is simple * provided * your script runs outside the context of the document (i.e. in the console or a script to the folder level). There is no access to scripts of doc-level for obvious reasons.

    For example, put this in the console JS OCCURS the current file to a URL:

    Net.HTTP.request ({}

    cVerb: 'POST',

    cURL: "http://localhost/submit.php."

    oRequest: Collab.documentToStream (this);

    oHandler: {}

    answer: function (msg, uri, err) {}

    If (err! = undefined) app.alert (msg);

    }

    }

    });

    Your problem talking to a vanilla Web service, is that you can send the RFC1867 delimiters (i.e. the form apply for "multipart/form-data") that the ReadStream object is not a method of concatenation in the JSAPI Acrobat. It's also how you would usually precede other fields in the form, but if you are careful with your codes side server that you can send to save them as GET parameters in cURL. Normally, you'd be polite and passed a context of Type in the table of aHeaders header - it won't matter for the transmission process, but will allow your webservice predict what that heck he was sent.

    Your webservice will then read the raw data. PHP for example, you will get nothing in the $_FILES global, but you can grab the PDF by reading all of the input buffer, with the line:

    $pdf = file_get_contents() ("php://input");

    If this line was in the server script which was the JS code above, the variable $pdf will contain an exact binary copy of the currently opened document.

  • Need help getting A value in My App using xml/php http request

    I know that maybe this isn't the place to ask questions about php, but I thought that people may have encountered a similar problem and I'm getting desperate basically my application's data is stored in a mysql database table, and what I have to do is to get the value of auto increment of this table in my application via an http request. I'm doing a php file that gets this value and displays this value in the xml format, but I'm terrible at creating php to do such things and just get the constant errors. Can someone take a look at this and help me to tweak it so it does what I want it please? The table in question is called links and the line/field/column in the table I'm after is called linkid. This is the next value of auto-increment this line printed in xml format, that's what I want. Here is the php so far:-

    <?php 
    header("Content-type: text/xml"); 
    $host = ""; 
    $user = ""; 
    $pass = ""; 
    $database = ""; 
    $linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); 
    mysql_select_db($database, $linkID) or die("Could not find database."); 
    $tablename   = "links";
    $next_increment  = 0;
    $qShowStatus   = "SHOW TABLE STATUS LIKE '$tablename'";
    $qShowStatusResult  = mysql_query($qShowStatus) or die ( "Query failed: " . mysql_error() . "<br/>" . $qShowStatus );
    $row = mysql_fetch_assoc($qShowStatusResult);
    $next_increment = $row['Auto_increment'];
    echo "next increment number: [$next_increment]"; 
    ?>
    

    Hello

    step 1. the customer wants to add a new record. and sends a request for a new record

    step 2. the server adds a new record in the database (now its Blanck) and returns its ID number

    step 3.  the customer has now has an appropriate identification number and use it to add a new object to the table

    step 4. the customer with a registration ID and the new data for this "empty folder" is an update not an insert.

    step 5. You now have the table and database synchronization.

    David.

  • Help debugging: / pls/apex/f requested URL was not found on this server.

    Hi - unfortunately, I was on a hiatus APEX 7 months; I'm a little rusty.

    I'm going back to the application, I was working on that and get some behaviors
    that I don't remember. (Doesn't mean it wasn't there...)

    There is a page in my application (a report page) that once I sail
    for her, an attempt to access any other page in the application (for example to sort the results,
    results go back to the page where the query specs are entered, change a line):

    The/pls/apex/f requested URL was not found on this server.

    The generated url look completely valid and identical, with the exception of the page number,
    for those that are generated by another similar set of pages. Session state protection is
    disabled.

    Ideas?

    Thank you
    Carol

    Carol,

    If you can isolate it on a single page, say the login page after the termination, then you must disable a component on this page both (start with areas) until the problem no longer occurs. Also check the level of the application of the process of calculations and the authorisation schemes.

    It could be a problem with a value of source element / default or a query LOV too.

    Scott

  • How can I send a HTTP request to a web server using TCP?

    I'm writing a HTTP string to activate a script CGI, server of our company. It seems that the OPEN TCP CONNECTION works. Can I just use the TCP WRITE function to send the HTTP request string to the server?
    Thank you
    Tim

    I know that I probably would have finished faster if I had the Internet Toolbox, but the solution ends up being pretty simple with just the TCP features.
    Here is the solution, I came with yesterday (in the case where someone else needs) after searching Protocols TCP as suggested by "Laboratory Viewer" and examine details in the riding of developer. It ends up being only a string of 4 line.

    GET HTTP://proxyserver/path/file.asp?id=test HTTP/1.1
    HOMEroxyserver

    The first line of the string is made up of three things:
    (1) the GET command
    (2) the URL of the program target (in this case an ASP program that distributes a message preset)
    NOTE that in this case, the URL contained "HTTP://proxyserver" and not only the path to the file. If your not using a proxy server, you can probably omit the name of the server of the URL, but you must always the name of the host server to the second line.
    (3) the HTTP version used

    The second line is the host server.

    The last two lines are empty, but the two are apparently necessary to properly close the TCP request.

    Vi uses an OPEN TCP CONNECTION to connect to port 80, then the 4 line string is sent with a WRITING of TCP and the connection is closed with a NARROW CONNECTION of TCP.

    In my application, when the piece of equipment monitored by LabVIEW begins to enter a dangerous to use, LabVIEW uses this vi to send the HTTP request through the TCP connection and a program of target ASP on the company's web server. The ASP reads the message ID (? id = test) and sends the message page and the text messaging appropriate to maintenance and engineering personnel. People warned by text pagers are supposed to respond immediately.

    Our DSI wrote the ASP that allows you to set the ID of multiple message with different distribution lists. Each message is triggered with a different ID of the virtual instrument according to the gravity of the situation.

    Thanks to other amateurs who have published their questions and their answers. Hope someone else finds this useful.

  • Http request message with BB10 Simulator test

    Hi all

    I implement request to send http request and receive the response from the server.

    Earlier for testing with simulators, we used MDS for the connection to the server.

    How to test this application using Simulator BB10 Alpha? Kindly let me know.

    Thank you and best regards,

    Shubhangi

    Hello

    I use more kink for reference: it is very useful.

    https://developer.BlackBerry.com/Cascades/documentation/device_comm/networking/tutorial_http_comm.ht...

    Also in my code, it was typo. Now the http request has been published to server correctly.

    Thank you and best regards,

    Shubhangi

  • XML Http Request returns only "undefined"?

    Hi all

    XML Http Request only returns "undefined".

    Any idea what's going on?

    Have you in the white list the areas that you try to access the config.xml file?

    https://developer.BlackBerry.com/HTML5/documentation/access_element_834677_11.html

    Otherwise, see this example page that shows how to use XHR. Maybe there is an excerpt that is missing in your code?

    http://BlackBerry.github.IO/WebWorks-samples/kitchenSink/HTML/browser/XHR.html

  • HTTP request works does not in a Simulator

    Hi all

    am held to an odd question in the BB. My http request class always throws incorrect exception as the url. spin the MDS Server too. to send the request, I talked link http://riccomini.name/Topics/Mobile/BlackBerry/BlackBerryHTTPClient/...

    try url www.google.com... every time am getting error 400... I don't think that the url is incorrect.

    So please help me to solve the problem. Is there a problem with MDS? using jde 4.5 and 8300 simulator-based test.

    I tried the sample provided by the SDK... also for this same problem am facing

    Thanku

    Sorry not an area of expertise, but I guess you have a proxy on your network server and you must configure the MDS to work with it.  Search for proxy server, there is an article that explains how.

  • signature of the oversized https request

    Hi, is it possible that we can trigger an alarm when an https request exceeds a certain size?

    I can define a type state.http signature using parameters such as the following? MaxRequestFieldLength takes into account the fragmentation of application data by ssl?

    -Direction = ToService

    -MaxRequestFieldLength = 1000000

    -servicePorts = 443

    -AlarmThrottle = FireOnce

    -MinHits = 1

    -ResetAfterIdle = 15

    -ThrottleInterval = 15

    -WantFlag = TRUE

    If this does not work, would you please suggest alternatives. Thank you.

    I looked into it, and it does not seem that this will really be feasible with the help of a personal signature. First, you must use the STRING. TCP engine for this. THE STATE. Engine HTTP needs context information in the HTTP stream in order to work properly. Because the HTTPS protocol is encrypted traffic, we have not these signals. So there's basically trying to count bytes in a HTTPS stream. Two problems here. First of all, the implementation of regex in STRING. TCP is limited to 512 ~ States for performance reasons. So, we will build only a model to 512 or more characters. This obviously does not follow the large desired patterns. Secondly, we need some sort of condition of single endpoint, a character model, at the end of the regex model with. Due to the random nature of characters in the encrypted HTTPS data, we do not have the guarantee that our terminator will not unexpectedly appear in the stream for giving us no good way to determine, we have reached the end of the search. This signature will probably be coded in a new engine.

  • Error after http request

    Hello

    I have an application that performs an http request to a server that send to BlackBerry and BlackBerry XML parse XML with SAX. I get this error: invalid character '& #x10' encountered. Can you tell me what is this character and how I can solve it?

    Thanks in advance.

    Kind regards

    Gianni.

    I solved it adding

    conn.setRequestProperty (' x-rim-transcode-content "," none"");

    but I do not know why... May I ask why?

  • HTTP request at regular intervals

    Hello

    I have an application that update its database, create an http request and parsing the xml response (it dynamically build the query with xml content). I want to update my database at regular intervals, so I need to do http request at regular intervals, of power to the top of the device to power off. My autorun app at startup, but I would like to request http in the same interval, even if I enter the application and I close. I tried with the task of thread or a timer, but I have the same problem, it is if I enter the application and close the thread dies and I can't see http request. I don't know if I explain my problem... Can you tell me if there is a solution?

    Thanks in advance.

    Kind regards

    Gianni.

    Use a background application. You can use a different entry point (see the knowledge base) to enter your main application.

    a timer and timertask run a thread would be the best solution I think

  • Today, I have a problem with the HTTP request

    Well, this time, I try to get an image .png from a URL. To get this I do the following:

    try{   if (CoverageInfo.isOutOfCoverage()){      setError("No hay covertura suficiente de la red");        errorFlag = true; } else{     c = (HttpConnection)Connector.open(url);      is = c.openDataInputStream();     for(int j=0;j
    

    My problem is the second 'try' returns: "java.lang.illegalArgumentException". I don't really know much on HTTP conections, so I don't know that I have a lot of wrong code

    in other words, I'm moving to the java language this short code on the C++ language:

    WebRequest request = System.Net.WebRequest.Create(url);HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream datos = response.GetResponseStream();Imagen = new Bitmap(datos);pb1.Image = Imagen;datos.Close();response.Close();
    

    can someone help me?

    Thank you RexDoug and peter_strange,

    in the book "java J2ME a tope"-unfortunately or fortunately (for me), it is in Spanish - explain everything about HTTP request and how to interpret correctly the answer. Finally with the following code, I solved my problem:

    try{
        //ask if i have coverage
        if (CoverageInfo.isOutOfCoverage()){
            setError("No hay covertura suficiente de la red");
            errorFlag = true;
        }
        else{
            //create connection
            c = (HttpConnection)Connector.open(url);
            c.setRequestMethod(HttpConnection.GET);
            is = c.openInputStream();
    
            //process response
            if(c.getResponseCode()==HttpConnection.HTTP_OK){
                size = (int)c.getLength();
                if(size != -1){
                    data = new byte[size];
                    is.read(data, 0, data.length);
                    imagen = Bitmap.createBitmapFromBytes(data, 0, -1, 1);
                }
                else{
                    ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
                    int stream;
                    while((stream=is.read())!=-1){
                        byteArray.write(stream);
                    }
                    data = new byte[byteArray.size()];
                    data = byteArray.toByteArray();
                    byteArray.close();
                    imagen = Bitmap.createBitmapFromBytes(data, 0, -1, 1);
                }
            }
            //close connections
            c.close();
            is.close();
        }
    }
    

    This code is similar to the example of rexdoug.

Maybe you are looking for

  • Upgrading RAM on Satellite S5100-201

    Is someone can you please tell me what I need to buy to upgrade to 1 GB? I think I have a 256 and a 128 to present but am a novice and have no idea how many pins, speed, dram etc. Thank you

  • computer up

    I'm on a lot of adult sites... Ok.. But anyway to get a call from someone claiming to be MSN here is their number 323-892-0882 I did not call are legitimate? What is a good virus protection... I plan to go to a Mac... ??? Give me comments

  • Simulator of OS6 for VS. Debug?

    I use Visual Studio WebWorks v2.5.1.1 on VS2008 Windows XP.  Debugging on the 9550 Storm (v5.0.0.469) Simulator provided with the SDK works fine, but I have not been able to find a single OS 6 Simulator that does not give me the message: "debugging i

  • BlackBerry Smartphones font size in the browser "BOLD".

    I just got rid of my BB 8830 for the new "BOLD".  However, the size of the text in the browser is extremely low. If all goes well, a change will be made so I can see what is displayed in the browser.

  • Error 'pilot not available' when connecting to my HP Laserjet P2035 on my Emachines laptop.

    Original title: ProgramProgramsCompatibilityApplicationApplications I have trouble with my Hp Laserjet P2035 with my computer emachines laptop, the error message is still this unavailable driver! I downloaded the supposed driver a few times everythin