Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 919827
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T18:36:38+00:00 2026-05-15T18:36:38+00:00

Is it a requirement that RESTful interactions occur between physically separate clients and servers?

  • 0

Is it a requirement that RESTful interactions occur between physically separate clients and servers? i.e. does the interaction need to involve the network stack in some way? Is there any benefit to employing an HTTP-like “calling convention” between the various components of an application?

It seems to me that the benefits of REST, such as they are, are almost as applicable to communication between components of the same application as to communication between physically separate clients and servers, and that REST’s constraints and guiding principles can be satisfied without the network stack being involved. (I’m not suggesting that it’s a good idea for every function call to “look like HTTP”, but for certain function calls or interactions, it might make sense for the interaction to be HTTP-like.)

For example, in a web application it might be useful to access (“internal”) user information via URLs like http://api.local/user/34 and an “HTTP client” that routes and dispatches requests internally, rather than going through a standard HTTP routing and dispatch process. Instead of providing a conventional library and associated documentation, the developer of the user component would provide URL endpoints (resources), which could be manipulated with the standard HTTP verbs. Since developers are already familiar with HTTP, less documentation would be required, and there would be more consistency and uniformity across components.

(I think that thinking about REST in this way also helps clarify the difference between REST and RPC mechanisms like SOAP–there’s no reason to ever use SOAP for “internal” calls, but the understood behaviour and semantics of REST may make it useful for “internal” calls in some situations. And of course if you’re using REST for internal calls (REST Level 0?), it’s trivial to convert such interactions into external calls if the need arises.)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T18:36:39+00:00Added an answer on May 15, 2026 at 6:36 pm

    Using REST principles and HTTP semantics in-process definitely does make sense, but probably only if your application also eventually is a client or server communicating with HTTP.

    The hard part is honoring the layered constraint of HTTP since it’s so easy to call that singleton on the other sie of the layer, since it’s just a function call away.

    One benefit, however is that you can in fact move a layer from one place to another. It’s probably hard to achieve this fully, but I think it’s doable, although I’ll hazard a guess that it’s never been done.

    In my own thought experiments for this all of the benefits of HTTP come into play, in ways that mere memcached or in-process caches can’t handle it. Take, for example cache validation, or conditional puts. Imagine being able to make a function call with the expressiveness of a HTTP request:

    retrieve this thing from this service, but only if its ETag isn’t “A” or “B” or W/”C”, since those are the ones I have at the moment

    Or

    store this over here, but only if the ETag W/”DEF” is still valid, since that’s the tag I used when I did my GET just now.

    and

    I’d like to search for widgets like this, and have the result preferably as an IAtomCollection, but i’ll take a List instead (Accept). The last time I asked this question I got an ETag of “foo” (If-None-Match), so I don’t need it if it didn’t change, but if you don’t mind, I’d like to verify the validity of my cache with the origin server (Cache-Control: must-revalidate). Oh and by the way here are my credentials (Authorization).

    Questions like these are so easy to do in HTTP, and we all know how to forge such complicated queries.

    The same goes for HTTP responses:

    Hi, I found your IAtomCollection, and I did actually verify it with the origin server. The thing you have isn’t valid any more, so here’s a new one for you. It has the ETag of “bar”, and you’re allowed to consider it fresh for two minutes without revalidating with me, but if I’m gone the next time you ask, you can extend the freshness period for another minute. And of course the response varies based on your credentials (goes without saying, right?) and your preferences.

    Again, plain old HTTP. Imagine being able to make method calls that are that smart!

    As for HATEOAS, putting some thought into encapsulating identifiers would make it possible to honor that constraint too. But my thought experiments haven’t gone very far in this direction…

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.