Feature #35243

HTTP 1.1 Support – Foundations

Added by Robert Lemke over 3 years ago. Updated over 3 years ago.

Status:Resolved Start date:2012-03-26
Priority:Must have Due date:
Assigned To:Robert Lemke % Done:

100%

Category:Http
Target version:TYPO3 Flow Base Distribution - 1.1
PHP Version:5.3 Complexity:hard
Has patch:No

Description

In order to cleanly separate between the domain of HTTP and that of the MVC framework, it is necessary to split up the request handling which is currently located in the MVC sub package of FLOW3. Two parts should be the result: a new Http sub package which is closely modeled after the HTTP 1.1 and related specs and the Mvc sub package which addresses the aspect of routing, action requests and their dispatching to the respective controllers.


Related issues

related to TYPO3.Flow - Feature #33371: HTTP 1.1 Support Resolved 2012-05-17
related to TYPO3.Flow - Feature #37212: Edge Side Includes (ESI) Accepted 2012-05-16
related to TYPO3.Flow - Task #36340: Environment class needs to be cleaned up Resolved 2012-04-19
related to TYPO3.Flow - Bug #36397: baseUri setting no longer used since HTTP foundation changes Resolved 2012-04-20
related to TYPO3.Flow - Feature #36565: Provide method for retrieving current HTTP request Resolved 2012-04-25
related to TYPO3.Flow - Feature #37402: Make request handling RESTfuller Resolved 2012-05-22

Associated revisions

Revision eb813f96
Added by Sebastian Kurfuerst over 3 years ago

[TASK] Add missing getParentRequest() method in HTTP Response

Furthermore, some documentation cleanup.

Related: #35243
Related: #33371
Releases: 1.1
Change-Id: I310dad852b8ac0053bd5c2a6c4b03e8f32c1c6d3

Revision ecb44c54
Added by Robert Lemke over 3 years ago

[FEATURE] HTTP Client for Functional Testing

This adds a virtual HTTP client which supports pluggable request engines
for different purposes. The first scenario in which we'll use this new
"Browser" is for seamless functional testing of controllers and other
features which should be tested through the whole request / response
chain.

The FunctionalTestCase now provides a new class property called
"testableHttpEnabled" which, if set to TRUE, initializes a new browser
for each test and provides it as $this->browser.

Also adds a bunch of functional tests for the MVC ActionController using
this new feature.

Resolves: #35706
Related: #35243
Releases: 1.1
Change-Id: Idb1b9b8eb6aedf2c5540ac309c264d9b3bd26a84

Revision 0e05ccc5
Added by Robert Lemke over 3 years ago

[!!!][FEATURE] HTTP 1.1 Support – Foundations

This commit contains the foundations for a better HTTP support in
FLOW3. It extracts request and response handling into a dedicated
sub package "Http" and clearly distinguishes between HTTP requests
and "action requests".

While this change set does contain a few new features which are
related to HTTP support, it is by far not complete and rather serves
as a foundation for further features which are following.

Change-Id: I557e6c45cdf20970f9410374aa03ee115e7789cd
Resolves: #35243
Related: #33371
Releases: 1.1

Revision 9dcd31d9
Added by Robert Lemke over 3 years ago

[FEATURE] Introduce HttpRequestHandlerInterface

This new interface identifies request handlers which are
supporting and working with HTTP requests as such and
allows other application parts to retrieve the current HTTP
request.

Change-Id: I8e94e1a94361e7ffd90ce25753cf383b3a81c7bc
Related: #35243
Resolves: #36565
Releases: 1.1

Revision e2d704e7
Added by Karsten Dambekalns over 3 years ago

[!!!][TASK] Move baseUri setting from Environment to Http\Request

The Environment class optionally used a setting to specify a fixed
baseUri to be used. With the HTTP foundation this settings was no
longer used (consistently).

If in Settings.yaml the "utility:environment:baseUri" settings was used,
it must be changed to "http:baseUri"!

Change-Id: I7f00559de6e586b17366177730430d0d9984a05e
Fixes: #36397
Related: #35243
Releases: 1.1

Revision 817017e0
Added by Karsten Dambekalns over 3 years ago

[!!!][TASK] Clean up Environment after HTTP refactoring

With the HTTP foundation quite some things from Environment have become
obsolete. The class and it's "users" are adjusted in this change.

The following methods are removed from Environment (check Http\Request
to see if a method you need is available there) with this change:

  • setBaseUri
  • getHTTP*
  • getAcceptedFormats
  • getRemoteAddress
  • getRemoteHost
  • getRequestProtocol
  • getRequestUri
  • getBaseUri
  • getScriptPathAndFileName
  • getScriptRequestPathAndFileName
  • getScriptRequestPath
  • getRequestMethod
  • getCommandLineArgumentCount
  • getCommandLineArguments
  • getSAPIName
  • getRawGetArguments
  • getRawPostArguments
  • getUploadedFiles
  • getRawServerEnvironment

Most of those were marked as public API, but we still decided to drop
them, as their use cases were only guesswork.

For some things that used to be available, access to the current request
is now needed. For this, getHttpRequest() was added to the new
HttpRequestHandlerInterface, which returns the current HttpRequest.

Change-Id: I18fe7d44207bd2e170eec72d60d7d92ed91cf152
Resolves: #36340
Related: #35243
Releases: 1.1

Revision b2ee527c
Added by Christopher Hlubek over 3 years ago

[TASK] Remove leftover session dependency from Http\Request

This is actually not used and causes circular dependency problems
in some cases.

Change-Id: I329f7fbaabbe475edb851ea8106ee7dfdf583b1d
Related: #35243
Releases: 1.1

Revision 9de4a2c9
Added by Pankaj Lele over 3 years ago

[TASK] Fix RestController to work with HTTP foundation

This fixes RestController to work again with HTTP foundation.

Change-Id: Ibb3d3a328f9e74232597005423a086b860ff66b4
Related: #35243
Releases: 1.1

Revision c00ef3bf
Added by Robert Lemke about 3 years ago

[TASK] HTTP Request: hasArgument() and getArgument()

This change set provides two new getters for the unified
request arguments.

Change-Id: I847c085cc2b30db099e691805dc0f12c767c6fba
Related: #35243
Releases: 1.1

History

#1 Updated by Gerrit Code Review over 3 years ago

  • Status changed from Accepted to Under Review

Patch set 1 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#2 Updated by Gerrit Code Review over 3 years ago

Patch set 2 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#3 Updated by Gerrit Code Review over 3 years ago

Patch set 3 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#4 Updated by Gerrit Code Review over 3 years ago

Patch set 4 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#5 Updated by Gerrit Code Review over 3 years ago

Patch set 5 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#6 Updated by Gerrit Code Review over 3 years ago

Patch set 6 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#7 Updated by Gerrit Code Review over 3 years ago

Patch set 7 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#8 Updated by Gerrit Code Review over 3 years ago

Patch set 8 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#9 Updated by Gerrit Code Review over 3 years ago

Patch set 9 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#10 Updated by Gerrit Code Review over 3 years ago

Patch set 10 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#11 Updated by Gerrit Code Review over 3 years ago

Patch set 11 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#12 Updated by Gerrit Code Review over 3 years ago

Patch set 12 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#13 Updated by Gerrit Code Review over 3 years ago

Patch set 13 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/9880

#14 Updated by Robert Lemke over 3 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

Also available in: Atom PDF