HTML <form> attribute na method

paglilingkuran at paggamit

method Ang atributo ay nagtutukoy kung paano ipapadala ang datos ng porma (ang datos ng porma ay ipapadala sa pahina na tinukoy ng attribute na action).

Maaaring ipagpadala ang datos ng porma bilang variable ng URL (gamit ang method="get") o bilang transaksyon ng HTTP POST (gamit ang method="post")

tungkol sa GET:

  • Idagdag ang datos ng porma sa URL sa porma ng pangalan/halaga
  • Ang URL ay may limitasyon sa haba (humigit-kumulang 3000 na character)
  • Huwag gamitin ang GET para ipagpadala ang sensitibong data! (Maaring makikita sa URL)
  • Para sa mga porma na nais magdagdag ng resulta bilang bookmark ay napaka-kapaki-pakinabang
  • GET ay mas gugustuhin para sa hindi ligtas na data, gaya ng string ng query sa Google.

Tungkol sa POST:

  • Magdagdag ng data ng form sa laman ng HTTP request (ang data ay hindi makikita sa URL).
  • Walang limitasyon sa laki.
  • Ang form na ginamit sa POST ay hindi makakasama sa bookmark.

Eskwelahan

Mga halimbawa 1

Magsumite ng form gamit ang method "get":

<form action="/action_page.php" method="get">
  <label for="fname">Unang pangalan:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">Pangalawang pangalan:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Magsumite">
</form>

Subukan ang sarili

Mga halimbawa 2

Magsumite ng form gamit ang method "post":

<form action="/action_page.php" method="post">
  <label for="fname">Unang pangalan:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">Pangalawang pangalan:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Magsumite">
</form>

Subukan ang sarili

Grammar

<form method="get|post">

Halaga ng attribute

Halaga Paglalarawan
get Default. Magdugtung ng data ng form sa URL bilang pares ng pangalan at halaga: URL?name=value&name=value.
post Magpadala ng data ng form bilang transaksyon ng HTTP post.

Detalye ng property na method

Ang browser ay magpadala ng data ng form sa server para sa pagproseso gamit ang paraan na itinakda ng property na method. May dalawang paraan: POST at GET method.

Kapag gumamit ng POST method, ang browser ay gagawin ang data sa pamamagitan ng dalawang hakbang. Una, ang browser ay magkakonekta sa server na itinalaga sa action attribute ng form, pagkatapos ay ipapadala ang data sa server sa pamamagitan ng paglilipat sa pagkakahiwalay.

Sa gawain ng server, kapag nagsisimula ang aplikasyon na gumagamit ng POST style, dapat basahin ang mga parametro mula sa isang posisyon ng tanda, at kapag nasa pagbabasa ng mga parametro, dapat idecode ang mga parametro bago gamitin ang mga halaga ng form bago gamitin ang aplikasyon. Ang server na pinagmulan ng user ay malinaw na nagbibigay ng direksyon kung paano dapat tanggapin ang mga parametro ng aplikasyon.

Ang isa pang kaso ay gumamit ng GET method, kung saan ang browser ay magkakonekta sa server na nagpapatnugot ng form, pagkatapos ay ipapadala ang lahat ng data ng form sa isang hakbang ng paglilipat: ang browser ay magdapat ng data direktang sa pagkalakip ng URL ng action ng form. Ang dalawa ay nagsasagupa ng isang tanda ng katanungan.

Ang mga browser ay maaaring magpadala ng impormasyon ng form sa pamamagitan ng alinman sa mga paraan na ito, ngunit ang ilang server ay tatanggap lamang ng datos na ibinigay ng isang method. Maaaring ipaliwanag ang server na gagamitin ang method na gagamitin upang maiproseso ang datos ng form, sa pamamagitan ng attribute na method ng <form> tag, upang ipili kung ito ay POST o GET.

POST o GET?

Kung ang server na nagpaproseso ng form ay sumusuporta sa POST at GET method, anong method ang dapat mong pilihin? Ito ay ang ilang patakaran na may kaugnayan sa bagay na ito:

  • Kung gusto mong makakuha ng pinakamahusay na paggamit ng paggamit ng form transmission, maaring gamitin ang GET method para sa maliit na form na may ilang maikling field.
  • Ang ilang server operating system ay may limitasyon sa bilang at haba ng mga komandang maipapasa sa aplikasyon, kaya kung ang form ay may maraming field o mahabang text field, dapat gamitin ang POST method para sa pagpapadala.
  • Kung wala kang sapat na karanasan sa pagpagsulat ng aplikasyon ng form processing sa server, dapat mong piliin ang GET method. Kung gagamitin mo ang POST method, kailangan mong gawin ang dagdag na gawain sa pagbasa at pagdecode, kung saan ito ay maaaring hindi magiging mahirap, ngunit maaaring hindi mo nais na magtrabaho sa mga bagay na ito.
  • Kung ang seguridad ay isang problema, maaring itaas natin ang pagpili ng POST method. Ang GET method ay naglagay ng parametro ng form direktang sa URL ng aplikasyon, kaya maaaring madaling nakita ng mga network spy at maaaring makuha mula sa mga log file ng server. Kung ang parametro ay kasama ang sensitive information tulad ng account number ng credit card, ito ay maaaring magbigay ng panganib sa seguridad ng user nang walang kinalaman. Ang mga aplikasyon na POST ay walang hibang sa seguridad, at kahit na ang parametro ay ililipat bilang isang hiwalay na transaksyon sa server para sa pagproseso, maaaring gamitin ang encryption sa pamamagitan nito.
  • Kung gusto mong tumawag sa aplikasyon ng server sa labas ng form at ipasa ang parametro, dapat gamitin ang GET method, dahil ang method na ito ay nagbibigay ng kapangyarihan na isama ang parametro tulad ng form bilang bahagi ng URL. Sa kabilang banda, ang mga aplikasyon na may style na POST ay nagnanais na mayroon pang isang dagdag na prosesong pagkakalat mula sa browser, kung saan ang nilalaman ng pagkakalat ay hindi dapat maging nilalaman ng tradisyonal na <a> tag.

Malinaw na pagpapasa ng parametro

Ang ilang mungkahi sa unahan ay maaaring gamitin bilang isang paliwanag sa pagpili ng ganitong paraan. Ipagpalagay na mayroon kang napakasimpleng form na may lamang ang parametro x at y. Ang porma ng kanilang mga halaga sa pagcode ay tulad ng sumusunod:

x=28&y=66

Kung ang form ay gumagamit ng method=GET, ang URL na ginamit upang tumutukoy sa aplikasyon ng server ay gayon ang sumusunod:

http://www.example.com/example/program?x=28&y=66

Sa anumang oras, maaring gumawa tayo ng tradisyonal na <a> tag, gamit ito upang tumawag sa porma ng porma ng form na may kinakailangang parametro, tulad ng sumusunod:

<a href="http://www.example.com/example/program?x=28&y=66">

ปัญหาเดียวคือ สัญญาณ & ที่ใช้ในการแยกตัวเลขที่แยกเพื่อจำแนกตัวอักษรก็เป็นตัวเทียบของสัญญาณตัวเทียบของตัวเลข ถ้าคุณใส่สัญญาณ & ในค่า href ของแท็ก <a> โปรแกรมเบราเซอร์จะแทนที่ตัวอักษรหลังจากสัญญาณ & ด้วยตัวเทียบของตัวอักษร

เพื่อป้องกันสถานการณ์นี้ พวกเราต้องใช้ตัวเทียบของสัญญาณ & หรือ "&" หรือ "&" ที่แทนสัญญาณ & ของมัน หลังจากการแทนที่ ตัวอย่างของการอ้างอิงโปรแกรมเซิร์ฟเวอร์ที่ไม่ใช้ฟอร์มของเราจะดูเหมือนนี้:

<a href="http://www.example.com/example/program?x=28&y=66">

แม้ว่ายังไม่สามารถใช้สัญญาณ & ใน URL ได้ และอาจนำไปสู่ความสับสนในอนาคต แต่เราก็ให้ความเห็นว่าเซิร์ฟเวอร์ควรรับสัญญาณขีดสองจุดข้างหลังเช่นกัน คุณก็สามารถดูเอกสารเซิร์ฟเวอร์ของคุณด้วยเพื่อดูว่าเซิร์ฟเวอร์สนับสนุนความสามารถนี้หรือไม่

การสนับสนุนเบราเซอร์

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
การสนับสนุน การสนับสนุน การสนับสนุน การสนับสนุน การสนับสนุน