Re: General use of rewrite / redirect
| From: | Børge Holen | Date: | Tue, 18 Mar 2008 13:38:50 +0000 |
| Subject: | Re: General use of rewrite / redirect | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-271717@lists.php.net to get a copy of this message | ||
On Tuesday 18 March 2008 14:22:26 Aschwin Wesselius wrote:
> Per Jessen wrote:
> > Yes, that's a very typical setup. When the form is processed, you send
> > a 303 redirect to the "Thank you" page. That way, if the user hits
> > the "back" arrow, he's taken back to the form URL, not the post URL.
> > (which would then warn him about re-submitting etc.)
>
> Ok, fine. But why do a real redirect when a header with 303 could be
> sufficient? If you model good enough, there would not be a need for
> header(location) redirects. Or am I wrong?
>
> >> What is your opinion about (ab)using rewrites / redirects? Do you use
> >> it quick and dirty, or is it some elegant way of controlling flow?
> >
> > I think there are plenty of perfectly valid reasons for using a
> > redirect, whether dynamically from php or via an apache config.
> > And undoubtedly there equally many poor reason for using redirect and/or
> > rewrite. (they're very different things, by the way).
>
> I know they're different things. I only want to start a discussion so
> people do understand other techniques instead of just using whatever
> 'works' as a solution to their problem with flow. Redirects do solve
> some issues, but they should be avoided whenever possible.
>
> header(location) mechanisms do come with a very huge disadvantage if you
> don't use them with caution. Requests are reinitialised, libraries
> loaded (again), DB connections setup/checked again, session lookups are
> being done, log write for another request etc. That's quite an impact
> for just not knowing what to do with flow. So, if you know what you want
> to handle (control) and what you want the user to see (view), one should
> be able to model it without the use of redirects unless it really is
> needed.
>
> Or is it OK, to redirect and 'simplify' the flow?
Are you asking or informing? The way of; I know it all, how do I do it? is
confusing. All you do is stating the obvious either way, while it all depends
on the task at hand. You may want to reconnect to a different db, cleaning
out variables and posts? dunno.
Probably you want the least possible transfer over the network since that is
more costly than a new computer to a cluster. But with 10.000 users you have
to do the math yourself, cuz heavy db tasks vs a small increase in traffic...
--
---
Børge Holen
http://www.arivene.net