縲娠HP縲践TTP繝ャ繧ケ繝昴Φ繧ケ蜃ヲ逅縲伸aravel縲

PHP縺ァHTTP繝ェ繧ッ繧ィ繧ケ繝医ョ荳ュ霄ォ繧呈歓蜃コ縺励◆繧翫√Ξ繧ケ繝昴Φ繧ケ縺ァ繝輔ぃ繧、繝ォ繧偵ム繧ヲ繝ウ繝ュ繝シ繝峨☆繧九↑縺ゥ縺ョ蜃ヲ逅繧貞叙謇ア縺縺縺薙→縺後≠繧翫∪縺吶

PHP縺ァ菴懊j霎シ繧縺薙→繧ゅ〒縺阪∪縺吶′縲髱「蛟偵¥縺輔′繧翫&繧薙ッ繝輔Ξ繝シ繝繝ッ繝シ繧ッ繧剃スソ縺」縺ヲ繧オ繧ッ繝縺ィ螳溯」縺励∪縺励g縺縲ゅ→縺縺縺薙→縺ァ縲∽サ雁屓縺ッHTTP繝ェ繧ッ繧ィ繧ケ繝医サ繝ャ繧ケ繝昴Φ繧ケ蜃ヲ逅縺ォ縺、縺縺ヲ縺ョ讖溯ス繧呈紛逅縺励※縺縺セ縺吶

Laravel縺郡ymfony縺ィ縺縺繝輔Ξ繝シ繝繝ッ繝シ繧ッ繧偵吶シ繧ケ縺ォ縺励※縺縺セ縺吶ョ縺ァ縲√ラ繧ュ繝・繝。繝ウ繝医bSymfony縺ョ繧オ繧、繝医r蜿り縺ォ縺励※縺ソ繧九→縺縺縺ァ縺励g縺縲

Symfony HTTPFoundation繝峨く繝・繝。繝ウ繝

Laravel 8縺ァ蜍穂ス懊r遒コ隱阪@縺ヲ縺縺セ縺吶7莉・蜑阪ョ繝舌シ繧ク繝ァ繝ウ縺ァ繧ゅ⊇縺ィ繧薙←蜍輔″縺セ縺吶

繝輔ぃ繧、繝ォ繧偵ム繧ヲ繝ウ繝ュ繝シ繝峨&縺帙k

荳逡ェ蛻ゥ逕ィ逕ィ騾斐′螟壹>縺九b縺励l縺セ縺帙s縲CSV縺ェ縺ゥ縺ョ繝輔ぃ繧、繝ォ繧偵Θ繝シ繧カ縺ォ繝繧ヲ繝ウ繝ュ繝シ繝峨@縺ヲ繧ゅi縺縺ィ縺阪↓蛻ゥ逕ィ縺励∪縺吶Laravel縺ョ繧ウ繝ウ繝医Ο繝シ繝ゥ縺ァ縺ッ縺昴ョ縺セ縺セ蛻ゥ逕ィ縺ァ縺阪k縺ッ縺壹

return response()->download($pathToFile)

$pathToFile縺ョ驛ィ蛻縺ォ縺ッ繝繧ヲ繝ウ繝ュ繝シ繝峨&縺帙k繝輔ぃ繧、繝ォ縺ク縺ョ繝代せ繧呈ク。縺励∪縺吶ゅ◆縺」縺溘%繧後□縺代〒繝繧ヲ繝ウ繝ュ繝シ繝牙ヲ逅縺悟ョ梧舌〒縺吶

繝輔ぃ繧、繝ォ繝繧ヲ繝ウ繝ュ繝シ繝牙セ後↓隧イ蠖薙ヵ繧。繧、繝ォ繧貞炎髯、縺励◆縺

繧ウ繝ウ繝医Ο繝シ繝ゥ縺ァ繝輔ぃ繧、繝ォ繧偵Ξ繧ケ繝昴Φ繧ケ縺励※縺繧九°繧峨√Ξ繧ケ繝昴Φ繧ケ蜃ヲ逅蠕後↓繝輔ぃ繧、繝ォ蜑企勁縺ァ縺阪↑縺縺倥c繧薙→諤昴▲縺ヲ縺縺溘i縲√■繧繧薙→讖溯ス縺梧署萓帙&繧後※縺縺セ縺励◆縲

return response()->download($pathToFile)->deleteFileAfterSend(true);

deleteFileAfterSend繧剃スソ縺縺ィ縲√ム繧ヲ繝ウ繝ュ繝シ繝牙ヲ逅螳御コ蠕後↓隧イ蠖薙ヵ繧。繧、繝ォ繧貞炎髯、縺励∪縺吶り牡縲謔ゥ繧薙〒縺縺溘i縺薙ョ讖溯ス縺ォ霎ソ繧顔捩縺阪∪縺励◆縲ゅげ繧ー繧雁鴨螟ァ莠九

false繧呈欠螳壹☆繧九→繝輔ぃ繧、繝ォ繧貞炎髯、縺励↑縺縺薙→繧呈守、コ縺ァ縺阪∪縺吶

繝ェ繧ッ繧ィ繧ケ繝医°繧峨い繧ッ繧サ繧ケ蜈医ヱ繧ケ繧貞叙蠕

$request->getPathInfo()

蜃コ蜉帷オ先棡繧オ繝ウ繝励Ν

string縲"/admin/user"

縺ゥ縺薙↓蜷代¢縺ヲ縺ョ繝ェ繧ッ繧ィ繧ケ繝医°繧貞叙蠕励〒縺阪∪縺吶

繝ェ繧ッ繧ィ繧ケ繝医倥ャ繝縺九i繝代Λ繝。繝シ繧ソ蜿門セ

$request->headers->get('Accept')

蜃コ蜉帷オ先棡繧オ繝ウ繝励Ν

string縲"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"

get縺ョ驛ィ蛻縺ァ繧ュ繝シ繧貞叙蠕励☆繧九%縺ィ縺ァ縲√Μ繧ッ繧ィ繧ケ繝医倥ャ繝縺ョ繝代Λ繝。繝シ繧ソ繧貞叙蠕励〒縺阪∪縺吶ゅΜ繧ッ繧ィ繧ケ繝医倥ャ繝縺ォ繝ュ繧ク繝繧ッ縺ォ蠢隕√↑繝代Λ繝。繝シ繧ソ繧貞性繧薙〒縺繧句エ蜷医ッ縺薙■繧峨r蛻ゥ逕ィ縺吶k縺ィ縺縺縺ァ縺励g縺縲

繝ャ繧ケ繝昴Φ繧ケ菴懈

縺薙%縺九i繝ャ繧ケ繝昴Φ繧ケ縺ォ髢「縺吶k讖溯ス縺ォ縺ェ繧翫∪縺吶ゅΞ繧ケ繝昴Φ繧ケ縺ッ繝懊ョ繧」繧ゅ倥ャ繝繧ょ九縺ォ菴懈舌@縺ヲ縺縺上%縺ィ繧ゅ〒縺阪∪縺吶

return response($content)
            ->header('Content-Type', $type)
            ->header('X-Header-One', 'Header Value')
            ->header('X-Header-Two', 'Header Value');

cookie繧偵Ξ繧ケ繝昴Φ繧ケ

繝悶Λ繧ヲ繧カ縺ォcookie繧呈ク。縺励※蛻カ蠕。繧定。後>縺溘>蝣エ蜷医ッ縺薙ョ繧医≧縺ェ險倩ソー繧定。後>縺セ縺吶

return response('繝ャ繧ケ繝昴Φ繧ケ縺吶k繧ウ繝ウ繝繝ウ繝')->cookie(
            'fruits', 'apple', 10
        );

險ュ螳壹@縺ヲ縺繧句、縺ッ荳玖ィ倥ョ騾壹j縺ァ縺吶

cookie縺ョkeyfruits
cookie縺ョvalueapple
cookie譛牙柑譛滄剞シ亥シ10

險ュ螳壹@縺歡ookie縺ョ蛟、繧貞叙蠕励☆繧九↓縺ッ縲?TTP繝ェ繧ッ繧ィ繧ケ繝医°繧牙叙蠕励@縺セ縺吶

$request->cookie('fruits')

豁」縺励¥cookie縺瑚ィュ螳壹&繧後※縺繧後ー縲√径pple縲阪→縺縺譁蟄怜励′蜿門セ励〒縺阪∪縺吶

cookie縺ッIlluminate\Http\Response繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧貞茜逕ィ縺励※縺繧後ー縺昴ョ縺セ縺セ險ュ螳壹〒縺阪∪縺吶ョ縺ァ縲√◎繧薙↑譖ク縺肴婿繧ゅ〒縺阪∪縺吶

$error = new MessageBag([
     'title'   => '繧ィ繝ゥ繝シ縺檎匱逕溘>縺溘@縺セ縺励◆',
]);
return back()->withInput()->with(compact('error'))->cookie(
     'error_lock', 'lock_message', 10
);

繧ィ繝ゥ繝シ縺檎匱逕溘@縺溘i10蛻髢捺怏蜉ケ縺ェ縲憩rror_lock縲阪→縺縺cookie繧堤匱陦後@縺ヲ縺縺セ縺吶ゆセ九∴縺ー縲√お繝ゥ繝シ逋コ逕溘@縺溘i荳螳壽悄髢薙ヶ繝ゥ繧ヲ繧カ縺九i縺ョ謫堺ス懊r繝ュ繝繧ッ縺励◆縺蝣エ蜷医↓蛻ゥ逕ィ縺ァ縺阪∪縺吶

cookie縺ョ譛牙柑譛滄剞縺悟繧後k縺議ookie縺梧カ医&繧後k縺ィ蜀榊コヲ蛻ゥ逕ィ縺ァ縺阪k繧医≧縺ォ縺ェ繧倶サ慕オ縺ソ縺ァ縺吶ュ縲

Cache-Control繧定ィュ螳壹☆繧

繧ウ繝ウ繝繝ウ繝縺ォ繧医▲縺ヲ縺ッ繝悶Λ繧ヲ繧カ縺ォ繧ュ繝」繝繧キ繝・縺輔○縺溘¥縺ェ縺繧ゅョ繧ゅ≠繧翫∪縺吶ゅ◎縺ョ蝣エ蜷医ッCache-Control繧貞茜逕ィ縺励※縲√ヶ繝ゥ繧ヲ繧カ蛛エ縺ォ縲後%縺ョ繧ウ繝ウ繝繝ウ繝縺ッ繧ュ繝」繝繧キ繝・縺励↑縺縺ァ縺ュシ√縺ィ謨吶∴縺ヲ縺ゅ£繧句ソ隕√′縺ゅj縺セ縺吶

$response->setCache([
    'no_cache'         => true,
]);

縺薙l縺ァno_chache繧定ィュ螳壹☆繧九%縺ィ縺後〒縺阪∪縺吶

莉悶↓繧Cache-Control縺ァ蛻ゥ逕ィ縺ァ縺阪k繧ゅョ縺ゅj縺セ縺吶′縲∝ソ隕√↑繧ゅョ縺縺題ィュ螳壹☆繧後ー蝠城。後≠繧翫∪縺帙s縲

$response->setCache([
    'must_revalidate'  => false,
    'no_cache'         => false,
    'no_store'         => false,
    'no_transform'     => false,
    'public'           => true,
    'private'          => false,
    'proxy_revalidate' => false,
    'max_age'          => 600,
    's_maxage'         => 600,
    'immutable'        => true,
    'last_modified'    => new \DateTime(),
    'etag'             => 'abcdef',
]);

繝ャ繧ケ繝昴Φ繧ケ縺ァ繝ェ繝繧、繝ャ繧ッ繝亥域欠螳

繧医¥菴ソ繧上l繧九ョ縺ッ繧ィ繝ゥ繝シ逕サ髱「縺ァ縺吶°縺ュ縲ゅΘ繝シ繧カ縺ョ繝ェ繧ッ繧ィ繧ケ繝医→縺ッ蛻・縺ョ繝壹シ繧ク縺ォ驕キ遘サ縺輔○縺溘>蝣エ蜷医↓縲√ヶ繝ゥ繧ヲ繧カ縺ク繝ェ繝繧、繝ャ繧ッ繝医r謖遉コ縺励◆縺蝣エ蜷医↓菴ソ縺縺セ縺吶

use Illuminate\Http\RedirectResponse;
$response = new RedirectResponse('http://example.com/',302);

隨ャ莠悟シ墓焚縺ョ驛ィ蛻繧堤怐逡・縺励◆蝣エ蜷医ッ繝繝輔か繝ォ繝医ョ302(Moved Temporarily)縺瑚ィュ螳壹&繧後∪縺吶301(PermanentツRedirect)繧呈欠螳壹@縺溘>蝣エ蜷医ッ縲∫ャャ莠悟シ墓焚縺ォ301繧定ィュ螳壹@縺セ縺吶

繝ェ繝繧、繝ャ繧ッ繝医′險ュ螳壹&繧後k縺ィ縲√Θ繝シ繧カ縺後←縺ョ繝壹シ繧ク縺ォ繝ェ繧ッ繧ィ繧ケ繝医r縺励※縺薙h縺縺後敬ttp://example.com/縲阪↓繝ェ繝繧、繝ャ繧ッ繝医&繧後∪縺吶

API縺ァjson繧偵Ξ繧ケ繝昴Φ繧ケ

Content-Type繝倥ャ繝繝励Ο繝代ユ繧」縺ォ縲径pplication/json縲阪b莉倅ク弱&繧後k縺ョ縺ァ萓ソ蛻ゥ縺ァ縺吶

return response()->json([
    'category' => 'fruits',
    'name' => 'apple',
]);

application/json縺御サ倅ク弱&繧後※縺繧後ー縲(npud繝励Ο繝代ユ繧」縺ァjson驟榊励ョ隕∫エ縺ォ繧「繧ッ繧サ繧ケ縺ァ縺阪∪縺吶

$name = $request->input('fruits');

縺セ縺ィ繧

HTTP繝ェ繧ッ繧ィ繧ケ繝医サ繝ャ繧ケ繝昴Φ繧ケ蜃ヲ逅縺ォ蛻ゥ逕ィ縺ァ縺阪◎縺縺ェ讖溯ス繧呈紛逅縺励∪縺励◆縲ゅd繧翫◆縺縺薙→縺ッ螟ァ謚オ繝輔Ξ繝シ繝繝ッ繝シ繧ッ縺ァ螳溽樟縺ァ縺阪∪縺吶ョ縺ァ縲∬ェソ譟サ縺ッ縺ィ縺ヲ繧ょ、ァ莠九

蛻ゥ逕ィ鬆サ蠎ヲ縺碁ォ倥◎縺縺ェ讖溯ス繧呈軸霈峨@縺ヲ縺縺セ縺吶′縲∽サ悶↓繧ゆセソ蛻ゥ縺昴≧縺ェ繧ゅョ縺後≠繧後ー霑ス險倥@縺ヲ縺縺阪◆縺縺ィ諤昴>縺セ縺吶

繧ウ繝。繝ウ繝医r谿九☆