HTML <form> method خاصیت
تعریف اور استعمال
method
خصوصیات فرم کی اعداد و شمار کو کس طرح بھیجنا ہو (فرم کی اعداد و شمار action خاصیت میں بھیج دیئے جائیں گے)
فرم کی اعداد و شمار کو URL متغیر (method="get") یا HTTP POST معاملے (method="post") کے طور پر بھیج سکتے ہیں
GET کے بارے میں ملاحظات:
- فرم کی اعداد و شمار کو نام/مقدار کی شکل میں URL میں شامل کیا جاتا ہے
- URL کی لمبائی محدود ہوتی ہے (تقریباً 3000 اکیڈز)
- جاسوسانہ اعداد و شمار کو GET کے ذریعہ بھیجنا منع کیا جاتا ہے! (یہ URL میں واضح رہ جائے گا)
- یہ آسان طور پر استعمال کرنے والوں کے لئے بائکسی کی کسی جگہ کو بینگا بک کئے جانے کا مقصد بات کی جاتی ہے
- GET 更适合非安全数据,例如 Google 中的查询字符串
关于 POST 的说明:
- 在 HTTP 请求的正文中附加表单数据(数据不会显示在URL中)。
- 没有大小限制。
- 使用 POST 提交的表单无法被加入书签。
语法
详解 method 属性
浏览器使用 method 属性设置的方法将表单中的数据传送给服务器进行处理。共有两种方法:POST 方法和 GET 方法。
如果采用 POST 方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action 属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。
在服务器端,一旦 POST 样式的应用程序开始执行时,就应该从一个标志位置读取参数,而一旦读到参数,在应用程序能够使用这些表单值以前,必须对这些参数进行解码。用户特定的服务器会明确指定应用程序应该如何接受这些参数。
یہ دوسرا حالت آپنے فرم کو GET طریقے سے استعمال کرنا ہوتا ہے، جب اس وقت براوزر فرم کا سرور کو کانکشن قائم کرتا ہے، بعد میں یہ تمام فرم کی اعداد وشمار کو ایک نقل کے مرحلے میں ارسال کرتا ہے: براوزر یہ اعداد وشمار فرم کی action URL کے بعد رکھتا ہے۔ یہ دونوں کے درمیان سوال نمبر سے علیحدگی فراہم کرتی ہے。
عام طور پر براہ راست نگرانی کا کام کی جانب سے، کسی بھی طریقے سے فرم کی معلومات کی منتقلی ممکن ہوتی ہے، لیکن کچھ سرور صرف ایک طریقے کی معلومات کو قبول کرتا ہے، آپ کو <form> تگ کا method (طریقہ) اپریشن استعمال کرکے فرم کا حلاقہ پرپلیکیشن کو معلومات کو کس طریقے سے حلاقہ پرپلیکیشن میں پیش کریں گا، یعنی POST یا GET، کا حکم دینا چاہئیے۔
POST یا GET؟
اگر فرم کا حلاقہ پرپلیکیشن سرور بھیج سکتا ہے تو آپ کو کوئی طریقہ استعمال کرسکتا ہے، درج ذیل چند قوانین سے آپ کو وضاحت حاصل ہوگی:
- اگر آپ چاہتے ہیں کہ فرم کی منتقلی کی بہترین کارکردگی حاصل کریں تو آپ کو GET طریقے سے چھوٹی فرم کو بھیجنا چاہئیے جس میں صرف کچھ قلیل فیلڈز موجود ہیں۔
- کچھ سرور آپریٹنگ سسٹم جب آپ کمانڈ لائن پارامتر کو پرپلیکیشن کو براہ راست پیش کرتے ہیں تو ان کی تعداد اور لمبائی پر محدودیت رکھتی ہیں، اس صورت میں، اگر فرم میں بہت سے فیلڈز یا بہت لمبے تکسٹ فیلڈز موجود ہیں تو آپ کو فرم کو POST طریقے سے بھیجنا چاہئیے۔
- اگر آپ سرور سائیڈ فرم کا حلاقہ پرپلیکیشن میں تجربہ نہیں رکھتے تو آپ کو GET طریقہ استعمال کرسکتا ہے، اگر آپ کو POST طریقہ استعمال کرسکتا ہے تو پارامتروں کو پڑھنے اور دکھانے میں اضافی کام کرنا پڑ سکتا ہے، جو کچھ ناچھوتا نہیں ہو سکتا، لیکن آپ کو اس کام کو کرنا ناخوش آئیں جاسکتا ہے۔
- اگر سیکورٹی کا معاملہ پیش آتا ہے تو ہم کوئی پیش کریں گے کہ آپ کو POST طریقہ استعمال کرسکتا ہے، کیونکہ GET طریقہ فرم پارامتر کو سرور کی URL میں براہ راست پیش کرتا ہے، جس سے نیٹ ورک کی نگرانی کا کام سادا ہوتا ہے اور سرور کے لگاتار فائل میں ان کی نمائش بھی ممکن ہوتی ہے، اگر پارامتر میں کسی حساس معلومات جیسے کریڈٹ کارڈ نمبر شامل ہو تو اس میں یوزر کی سیکورٹی میں خطرہ پیدا ہو سکتا ہے، جبکہ POST پرپلیکیشن کوئی سیکورٹی کا خطرہ نہیں ہوتا، جب پارامتر کو سرور کو سائیڈ شپ پر پارامتر کی شکل میں پیش کیا جاتا ہے تو کم از کم ایک اینکرنگ طریقہ استعمال کرسکتا ہے۔
- اگر آپ چاہتے ہیں کہ فرم سائیڈ پرپلیکیشن کا استعمال کریں اور اس کو پارامتر پیش کریں، تو آپ کو GET طریقہ استعمال کرسکتا ہے، کیونکہ اس طریقے میں فرم جیسے پارامتر کو URL کا حصہ بنایا جاسکتا ہے، جبکہ دوسرے جانب، POST جیسے پرپلیکیشن چاہتے ہیں کہ URL کے بعد سے اضافی کھلائی جائے اور اس میں پیش کی گئی معلومات کو URL کا حصہ نہیں بنایا جائے۔
پارامتر کو واضح طور پر پیش کرنا
آپ کا سوال کسی بھی فرم کو انتخاب کرنے کا توجہ جلد دیکھ رہا ہے، اگر آپ کا فرم بہت سادا ہے، جس میں صرف x اور y کی پارامترز موجود ہیں، تو ان کی قیمتیں کو کد کرسکتا ہے، جس کی شکل درج ذیل ہے:
x=28&y=66
اگر فرم میں method=GET استعمال کیا گیا تو سرور سائیڈ پرپلیکیشن کی مراد کی URL درج ذیل ہوگی:
http://www.example.com/example/program?x=28&y=66
کسی بھی کسی وقت ایک روایتی <a> تگ بناسکتا ہے، اس کو فرم کا استعمال کرسکتا ہے جس میں درکار پارامتر والا فرم دیکھا جاتا ہے، جس کی شکل درج ذیل ہے:
<a href="http://www.example.com/example/program?x=28&y=66">
یگنا مسئلہ یہ ہے کہ پارامتر تقسیم کیلئے استعمال کی جانے والی & علامت بھی کارکتر کی رد عملی میں شامل ہے۔ اگر <a> علامت کی href خاصیت میں ایک & علامت لگائی جائی، تو براہ راست بعد میں آنے والا کارکتر اس کی کارکتری رد عملی کی جگہ لگائی جائیگا۔
یہ صورت حال روکنے کیلئے، ہمیں اس کا رد عملی بجائی & علامت کو استعمال کیا جانا چاہیئے، یعنی "&" یا "&" کا استعمال کیا جانا چاہیئے۔ تبدیلی کے بعد، بالا کی مثال میں سرور کا غیر فرم کا نمونہ اس طرح بن جائیگا:
<a href="http://www.example.com/example/program?x=28&y=66">
یہاں تک کہ URL میں & علامت کا استعمال نہیں کیا جاسکتا اور ممکن ہے کہ مستقبل میں مشکل آئی، لہذا ہم مشورہ دیتے ہیں کہ سرور کو آخری میں بھی اس کا استعمال کیا جائے، پارامتر کے تقسیم کیلئے نقطہ کی استعمال کی جائے۔ آپ اپنے سرور کے دستنوشت کو بھی دیکھ سکتے ہیں، تاکہ پتہ لگائی جائے کہ سرور اس فونکشن کو پشتیبانی کرتا ہے یا نہیں。
بھرپائی کا براہ راست
کروم | ایج | فائرفاکس | سافری | آپریا |
---|---|---|---|---|
کروم | ایج | فائرفاکس | سافری | آپریا |
پشتیبانی | پشتیبانی | پشتیبانی | پشتیبانی | پشتیبانی |