diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 0aae9e958008ae4e1b652a8f6540cfd3dcde9639..0ca7e8f245ec4bb530c5a86d9e7f949ae8ff7094 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -28,7 +28,14 @@ $token = isset($_GET['t']) ? $_GET['t'] : '';
 $route = isset($_GET['download']) ? 'files_sharing.sharecontroller.downloadShare' : 'files_sharing.sharecontroller.showShare';
 
 if($token !== '') {
-	OC_Response::redirect($urlGenerator->linkToRoute($route, array('token' => $token)));
+	$protocol = \OC::$server->getRequest()->getHttpProtocol();
+	if ($protocol == 'HTTP/1.0') {
+		$status = '302 Found';
+	} else {
+		$status = '307 Temporary Redirect';
+	}
+	header($protocol.' ' . $status);
+	header('Location: ' . $urlGenerator->linkToRoute($route, array('token' => $token)));
 } else {
 	header('HTTP/1.0 404 Not Found');
 	$tmpl = new OCP\Template('', '404', 'guest');
diff --git a/lib/private/legacy/response.php b/lib/private/legacy/response.php
index 1b0b01de97234d37752ba1aa6ba54ea55acfb698..4186822c2690f68d816c53e2d6dcb01931e7d7a5 100644
--- a/lib/private/legacy/response.php
+++ b/lib/private/legacy/response.php
@@ -31,7 +31,7 @@
  */
 
 class OC_Response {
-	const STATUS_FOUND = 304;
+	const STATUS_FOUND = 302;
 	const STATUS_NOT_MODIFIED = 304;
 	const STATUS_TEMPORARY_REDIRECT = 307;
 	const STATUS_BAD_REQUEST = 400;
@@ -40,32 +40,6 @@ class OC_Response {
 	const STATUS_INTERNAL_SERVER_ERROR = 500;
 	const STATUS_SERVICE_UNAVAILABLE = 503;
 
-	/**
-	* Enable response caching by sending correct HTTP headers
-	* @param integer $cache_time time to cache the response
-	*  >0		cache time in seconds
-	*  0 and <0	enable default browser caching
-	*  null		cache indefinitely
-	*/
-	static public function enableCaching($cache_time = null) {
-		if (is_numeric($cache_time)) {
-			header('Pragma: public');// enable caching in IE
-			if ($cache_time > 0) {
-				self::setExpiresHeader('PT'.$cache_time.'S');
-				header('Cache-Control: max-age='.$cache_time.', must-revalidate');
-			}
-			else {
-				header('Expires: 0');
-				header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
-			}
-		}
-		else {
-			header('Cache-Control: cache');
-			header('Pragma: cache');
-		}
-
-	}
-
 	/**
 	* Set response status
 	* @param int $status a HTTP status code, see also the STATUS constants
@@ -77,12 +51,12 @@ class OC_Response {
 				$status = $status . ' Not Modified';
 				break;
 			case self::STATUS_TEMPORARY_REDIRECT:
-				if ($protocol == 'HTTP/1.1') {
-					$status = $status . ' Temporary Redirect';
-					break;
-				} else {
+				if ($protocol == 'HTTP/1.0') {
 					$status = self::STATUS_FOUND;
 					// fallthrough
+				} else {
+					$status = $status . ' Temporary Redirect';
+					break;
 				}
 			case self::STATUS_FOUND;
 				$status = $status . ' Found';
@@ -100,75 +74,6 @@ class OC_Response {
 		header($protocol.' '.$status);
 	}
 
-	/**
-	* Send redirect response
-	* @param string $location to redirect to
-	*/
-	static public function redirect($location) {
-		self::setStatus(self::STATUS_TEMPORARY_REDIRECT);
-		header('Location: '.$location);
-	}
-
-	/**
-	 * Set response expire time
-	 * @param string|DateTime|int $expires date-time when the response expires
-	 * string for DateInterval from now
-	 * DateTime object when to expire response
-	 */
-	static public function setExpiresHeader($expires) {
-		if (is_string($expires) && $expires[0] == 'P') {
-			$interval = $expires;
-			$expires = new DateTime('now');
-			$expires->add(new DateInterval($interval));
-		}
-		if ($expires instanceof DateTime) {
-			$expires->setTimezone(new DateTimeZone('GMT'));
-			$expires = $expires->format(DateTime::RFC2822);
-		}
-		header('Expires: '.$expires);
-	}
-
-	/**
-	* Checks and set ETag header, when the request matches sends a
-	* 'not modified' response
-	* @param string $etag token to use for modification check
-	*/
-	static public function setETagHeader($etag) {
-		if (empty($etag)) {
-			return;
-		}
-		$etag = '"'.$etag.'"';
-		if (isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
-		    trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
-			self::setStatus(self::STATUS_NOT_MODIFIED);
-			exit;
-		}
-		header('ETag: '.$etag);
-	}
-
-	/**
-	* Checks and set Last-Modified header, when the request matches sends a
-	* 'not modified' response
-	* @param int|DateTime|string $lastModified time when the response was last modified
-	*/
-	static public function setLastModifiedHeader($lastModified) {
-		if (empty($lastModified)) {
-			return;
-		}
-		if (is_int($lastModified)) {
-			$lastModified = gmdate(DateTime::RFC2822, $lastModified);
-		}
-		if ($lastModified instanceof DateTime) {
-			$lastModified = $lastModified->format(DateTime::RFC2822);
-		}
-		if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
-		    trim($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) {
-			self::setStatus(self::STATUS_NOT_MODIFIED);
-			exit;
-		}
-		header('Last-Modified: '.$lastModified);
-	}
-
 	/**
 	 * Sets the content disposition header (with possible workarounds)
 	 * @param string $filename file name
@@ -209,25 +114,6 @@ class OC_Response {
 		header('Content-Length: '.$length);
 	}
 
-	/**
-	 * Send file as response, checking and setting caching headers
-	 * @param string $filepath of file to send
-	 * @deprecated 8.1.0 - Use \OCP\AppFramework\Http\StreamResponse or another AppFramework controller instead
-	 */
-	static public function sendFile($filepath) {
-		$fp = fopen($filepath, 'rb');
-		if ($fp) {
-			self::setLastModifiedHeader(filemtime($filepath));
-			self::setETagHeader(md5_file($filepath));
-
-			self::setContentLengthHeader(filesize($filepath));
-			fpassthru($fp);
-		}
-		else {
-			self::setStatus(self::STATUS_NOT_FOUND);
-		}
-	}
-
 	/**
 	 * This function adds some security related headers to all requests served via base.php
 	 * The implementation of this function has to happen here to ensure that all third-party
diff --git a/lib/public/Response.php b/lib/public/Response.php
index dbd506d379d6f59c0b44701b841ba2a331de9b35..782dcb886261b3d4b2055deec62599f9b120b5a1 100644
--- a/lib/public/Response.php
+++ b/lib/public/Response.php
@@ -44,27 +44,6 @@ namespace OCP;
  * @deprecated 8.1.0 - Use AppFramework controllers instead and modify the response object
  */
 class Response {
-	/**
-	 * Enable response caching by sending correct HTTP headers
-	 * @param int $cache_time time to cache the response
-	 *  >0		cache time in seconds
-	 *  0 and <0	enable default browser caching
-	 *  null		cache indefinitely
-	 * @since 4.0.0
-	 */
-	static public function enableCaching( $cache_time = null ) {
-		\OC_Response::enableCaching( $cache_time );
-	}
-
-	/**
-	 * Checks and set Last-Modified header, when the request matches sends a
-	 * 'not modified' response
-	 * @param string $lastModified time when the response was last modified
-	 * @since 4.0.0
-	 */
-	static public function setLastModifiedHeader( $lastModified ) {
-		\OC_Response::setLastModifiedHeader( $lastModified );
-	}
 
 	/**
 	 * Sets the content disposition header (with possible workarounds)
@@ -84,57 +63,4 @@ class Response {
 	static public function setContentLengthHeader($length) {
 		\OC_Response::setContentLengthHeader($length);
 	}
-
-	/**
-	 * Disable browser caching
-	 * @see enableCaching with cache_time = 0
-	 * @since 4.0.0
-	 * @deprecated 14.0.0 just set the headers
-	 */
-	static public function disableCaching() {
-		header('Pragma: public');// enable caching in IE
-		header('Expires: 0');
-		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
-	}
-
-	/**
-	 * Checks and set ETag header, when the request matches sends a
-	 * 'not modified' response
-	 * @param string $etag token to use for modification check
-	 * @since 4.0.0
-	 */
-	static public function setETagHeader( $etag ) {
-		\OC_Response::setETagHeader( $etag );
-	}
-
-	/**
-	 * Send file as response, checking and setting caching headers
-	 * @param string $filepath of file to send
-	 * @since 4.0.0
-	 * @deprecated 8.1.0 - Use \OCP\AppFramework\Http\StreamResponse or another AppFramework controller instead
-	 * @suppress PhanDeprecatedFunction
-	 */
-	static public function sendFile( $filepath ) {
-		\OC_Response::sendFile( $filepath );
-	}
-
-	/**
-	 * Set response expire time
-	 * @param string|\DateTime $expires date-time when the response expires
-	 *  string for DateInterval from now
-	 *  DateTime object when to expire response
-	 * @since 4.0.0
-	 */
-	static public function setExpiresHeader( $expires ) {
-		\OC_Response::setExpiresHeader( $expires );
-	}
-
-	/**
-	 * Send redirect response
-	 * @param string $location to redirect to
-	 * @since 4.0.0
-	 */
-	static public function redirect( $location ) {
-		\OC_Response::redirect( $location );
-	}
 }