VerbFilter
VerbFilter?是針對 HTTP 請求方式的過濾器,作用是定義訪問指定動作所允許的HTTP請求,若不允許的HTTP請求到來,則會拋出一個 HTTP 405 錯誤。若不指定允許的請求方式,則默認允許當所有類型的請求方式 。 ? ? ? ? (推薦學習:yii教程)
接下來,試一試?VerbFilter?的簡單使用。
首先,在 SiteController 中添加代碼
public function actionInfo() { return \Yii::createObject([ 'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_JSON, 'data' => [ 'message' => 'hello world', 'code' => 100, ], ]); }
上述代碼,返回一個利用 FORMAT_JSON 格式化的字符串
使用URL:http://localhost/basic/web/index.php?r=site/info 訪問的時候,成功返回
{"message":"hello world","code":100}
接著,在 behaviors() 中添加代碼
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post'], ], ], ]; }
上述代碼,在 behaviors() 中使用了過濾器 VerbFilter ,指明訪問動作 info 時,只能使用 POST 請求方式
此時,使用RESTClient工具,選擇 GET 請求方式進行訪問的時候,返回 405 錯誤
再次修改代碼
public function behaviors() { return [ ... ... 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], 'info' => ['post','get'], ], ], ]; }
允許POST和GET兩種請求方式訪問動作Info,使用RESTClient工具訪問,選擇 GET 請求方式進行訪問的時候獲取到返回值
{"message":"hello world","code":100}
此時使用工具 RESTClient ,通過 post 發(fā)送請求,返回 405 錯誤。
這時候,修改 web.php 文件
'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => '4mWc84oNsYJpc-nnnjMwyOOiCTgcThig', 'enableCookieValidation' => false, 'enableCsrfValidation' => false, ],
添加上這兩行代碼,警用cookie保護與CSRF防范策略
'enableCookieValidation' => false, 'enableCsrfValidation' => false,
再次通過 post 發(fā)送請求訪問,成功。
注:CSRF驗證
因為Web網(wǎng)頁訪問的時候,form表單中會有對應的一個隱藏input:_csrf進行驗證,驗證通過才可以正常進行訪問;
而非網(wǎng)頁訪問方式(不通過Web表單,例如用命令行CURL請求)是無法通過csrf驗證的。
Atas ialah kandungan terperinci yii2怎么進行http請求處理. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

TOCREATEABASICROUTEINYII, FirstSetupAcontrollerbyPlacingItInTHeControllersDirectoryWithProperernamingandClassDefinitionErtingYii \ Web \ Web.1)

Ayiideveloper'skeSponSibilitiesInbilitiesincludedesigningandImplementingFeatures, memastikanPlicationseCurity, andoptimizingPerformance.qualificationsneedareastronggraspofphp, ExperienceWithFront-EndTechnologies, DatabaseManagementsKills, danProblemblembi

Kaedah mewujudkan operasi tersuai di YII adalah untuk menentukan kaedah yang sama bermula dengan tindakan dalam pengawal, secara pilihan menerima parameter; kemudian memproses data, membuat pandangan, atau mengembalikan JSON seperti yang diperlukan; dan akhirnya memastikan keselamatan melalui kawalan akses. Langkah -langkah khusus termasuk: 1. Buat kaedah yang diawali dengan tindakan; 2. Tetapkan kaedah kepada orang ramai; 3. Boleh menerima parameter URL; 4. Proses data seperti menanyakan model, memproses permintaan pos, pengalihan, dan sebagainya; 5. Gunakan AccessControl atau menyemak kebenaran secara manual untuk menyekat akses. Sebagai contoh, ActionProfile ($ ID) boleh diakses melalui /tapak /profil? Id = 123 dan menjadikan halaman profil pengguna. Amalan terbaik adalah

Ayiidevelopercraftswebapplicationsingingtheyiiframework, keperluanKillsinphp, yii-specificknowledge, dan webdevelopmentlifecyclemanagement.keewerponsibilitiesinclude: 1) writingefficientcodeTooptimizePormance, 2)

TouseActiveRecordinYiieffectively,youcreateamodelclassforeachtableandinteractwiththedatabaseusingobject-orientedmethods.First,defineamodelclassextendingyii\db\ActiveRecordandspecifythecorrespondingtablenameviatableName().Youcangeneratemodelsautomatic

Rakaman acara keselamatan di YII boleh dicapai dengan mengkonfigurasi sasaran log, mencetuskan log acara utama, memandangkan penyimpanan pangkalan data, dan mengelakkan rakaman maklumat sensitif. Langkah -langkah khusus adalah seperti berikut: 1. Tetapkan sasaran log khusus dalam fail konfigurasi, seperti filetase atau dBTarget, dan tentukan klasifikasi sebagai 'keselamatan'; 2. Gunakan yii :: info () atau yii :: amaran () untuk merakam log apabila peristiwa keselamatan kritikal (seperti kegagalan masuk dan menetapkan semula kata laluan) berlaku; 3. Secara pilihan menyimpan log dalam pangkalan data untuk pertanyaan dan analisis, dan anda perlu membuat jadual terlebih dahulu dan mengkonfigurasi parameter logTable; 4. Elakkan termasuk data sensitif, seperti kata laluan atau token semasa merakam maklumat konteks, dan anda boleh menggunakan penggantian parameter untuk menambah IP dan nama pengguna; 5

Menggunakan AssetBundles Yii adalah amalan terbaik untuk menguruskan fail CSS dan JS. Ia mentakrifkan kumpulan sumber secara berpusat melalui kelas PHP, dan secara automatik mengendalikan kebergantungan, penggabungan dan cache. 1. Pakej Sumber adalah kelas PHP yang digunakan untuk mengatur CSS, JS dan sumber lain dan mengisytiharkan kebergantungan mereka; 2. Daftar pakej sumber dalam paparan atau susun atur untuk menghasilkan tag HTML secara automatik; 3. Pakej sumber yang berbeza boleh didaftarkan secara kondusif mengikut peranan pengguna atau jenis halaman; 4. 5. Gunakan konfigurasi AssetManager untuk menambah cap waktu untuk mencapai kawalan versi, menyelesaikan masalah penyemak imbas. Penggunaan pakej sumber yang betul dapat meningkatkan kejelasan struktur projek dan kecekapan pemuatan

Di Yii, pengawal menyelaraskan logik aplikasi dengan memproses permintaan pengguna, model interaktif, dan paparan yang diberikan. Tanggungjawab utama pengawal termasuk: ① Pemprosesan permintaan HTTP; ② Berinteraksi dengan model untuk mendapatkan atau menyimpan data; ③ Memutuskan pandangan mana untuk memaparkan dan lulus data; ④ Pemprosesan borang penyerahan; ⑤ Mengembalikan respons HTML, JSON atau pengalihan semula. Pengawal Yii biasanya diwarisi dari pengawal Yii \ Web, dan setiap kaedah awam sepadan dengan tindakan yang boleh diakses melalui URL. Sebagai contoh, melawat http://example.com/site/index akan memanggil kaedah ActionIndex () SiteController. Tugas biasa termasuk pengesahan input, model panggilan, dan rendering
