Parser ng URL
Ang Parser ng URL ay isang libreng tool na naghihiwalay sa scheme, path at query string ng isang web address.
Ano ang kinukuha ng URL parser?
Tinutukoy ng URL parser ang mga bahagi ng istruktura ng isang web address nang hindi mo kailangang manu-manong hatiin ang text. Tatlong field ang ibinabalik ng tool gamit ang parse_url function ng PHP.
- Scheme ang tumutukoy sa protocol o addressing scheme, gaya ng https o http.
- Path ang tumutukoy sa path component, gaya ng /account/orders/42.
- Query ang naglalaman ng text pagkatapos ng tandang pananong na nagsisimula sa query component at bago ang anumang hindi naka-encode na tandang numero, gaya ng page=2&sort=date.
Kapaki-pakinabang ang pag-parse kapag sinusuri mo ang mga API request, callback URL, application log o data mula sa third party. Natutulungan ka nitong ihiwalay ang routing information sa mga query parameter bago mag-debug, mag-log o magbago ng address.
Walang hiwalay na hostname, port o fragment sa mga ibinabalik na field. Kung kailangan mo ang mga bahaging iyon, gumamit ng mas kumpletong URL parsing library sa iyong application.
Paano gamitin ang URL parser?
Ilagay ang kumpleto o bahagyang URL, pagkatapos ay suriin ang mga value ng scheme, path at query na ibinalik ng tool. Karaniwang pinakamalinaw ang resulta ng isang kumpletong absolute URL dahil tahasan nitong isinasaad ang scheme.
- Kopyahin ang URL mula sa browser, API response, webhook record o server log.
- Isama ang query string kung kailangan mong suriin ang mga pangalan o value ng parameter.
- Ihambing ang ibinalik na path sa route na inaasahan ng iyong application.
- Tingnan kung naroon ang scheme at query kapag kailangan ang mga ito ng iyong integration.
Sa server isinasagawa ang pagproseso. Ipinapadala sa server ang inilagay mo sa pamamagitan ng HTTPS at hindi ito iniimbak. Gayunman, iwasang magsumite ng mga aktibong access token, signed download link, session identifier o iba pang credential kung sapat na ang isang halimbawang inalisan ng sensitibong detalye.
Mga halimbawa at pagpapakahulugan sa resulta
Para sa isang absolute API URL, inihihiwalay ng parser ang protocol sa route at sa raw query string.
Input https://api.example.co.uk/v1/orders/42?expand=items¤cy=GBP
Scheme https
Path /v1/orders/42
Query expand=items¤cy=GBP
Iisang component ang ibinabalik para sa query. Sa karaniwang kumbensiyon para sa form/query string, pinaghihiwalay ng ampersand ang mga field, habang ang unang equals sign sa bawat field ang naghihiwalay sa pangalan at value nito. Hindi awtomatikong pinatutunayan ng pag-parse sa URL na ang expand o currency ay parameter na kinikilala ng API.
Maaari ding magkaroon ng path at query ang isang relative reference kahit walang nakasaad na scheme.
Input /search?q=red%20shoes&page=2
Scheme no scheme component
Path /search
Query q=red%20shoes&page=2
Karaniwang inaasahan ang kawalan ng scheme sa mga link na binuo sa loob ng iisang website. Ngunit sa data na dapat maglaman ng mga absolute callback URL, maaaring ipakita ng parehong resulta na nawawala ang prefix na https://.
Hindi URL validator ang parser na ito. Makakatulong itong makita ang kahina-hinalang istruktura, gaya ng nawawalang scheme, hindi inaasahang path o query text na nasa maling puwesto. Gayunman, hindi pinatutunayan ng parsed na resulta na umiiral ang address, nare-resolve ito sa DNS o nagbabalik ito ng matagumpay na HTTP response.
Ano ang nangyayari sa mga space, bantas at kakaibang input?
Nakaaapekto ang mga reserved character sa paraan ng paghahati sa URL, samantalang ang mga naka-encode na character ay karaniwang nananatili sa component kung saan lumilitaw ang mga ito. Pinaghihiwalay ng parser ang mga component, ngunit hindi nito dini-decode o ginagawang pare-pareho ang nilalaman ng mga iyon.
- Sinisimulan ng hindi naka-encode na tandang pananong ang query component. Kung gagamitin bilang data sa labas ng kasalukuyang query ang literal na tandang pananong, dapat itong i-percent-encode kung kikilos ito bilang query delimiter kapag hindi naka-encode.
- Karaniwang pinaghihiwalay ng ampersand ang mga query parameter, ngunit buong query string ang ibinabalik ng tool sa halip na isa-isang bigyang-kahulugan ang bawat parameter.
- Ang hindi naka-encode na tandang numero (#) ang fragment delimiter sa karaniwang URL syntax. Hindi kabilang ang fragment data sa mga field na ibinabalik dito.
- Karaniwang dapat i-encode ang mga space, madalas bilang %20. Maaaring kumatawan ang plus sign sa isang space sa form-encoded na query data, ngunit bahagi iyon ng query decoding at hindi ng URL parsing.
- Kapag hinihingi ng tumatanggap na system, dapat gumamit ng UTF-8 percent-encoding ang path o query text na may accent o mga character na hindi Latin. Ginagamit ng mga internationalised domain name ang anyong compatible sa ASCII para sa malawak na compatibility sa mga protocol.
- Walang espesyal na asal sa pag-parse ang mga numero. Nananatili silang mga ordinaryong character sa loob ng path o query value.
Walang kapaki-pakinabang na istruktura ng URL na masusuri sa isang walang-lamang input. Maaari ding umabot sa mga limitasyon sa ibang bahagi ang napakahahabang URL, kabilang ang mga browser, web server, proxy at application framework. Hindi matutukoy ng tool na ito kung tatanggapin ng ibang system ang isang partikular na haba ng URL.
Kailan sulit mag-parse ng URL?
Sulit mag-parse kapag kailangan mong alamin ang istruktura ng isang address bago ito gamitin ng code o infrastructure. Kabilang sa mga karaniwang sitwasyon ang pagsuri sa mga webhook callback address bago mag-deploy, pagrepaso sa mga redirect target, paghihiwalay ng mga API route sa mga filter, at pagbasa sa mga URL na kinopya mula sa reverse-proxy log.
Karaniwan itong hindi kailangan kung machine lamang ang gagamit ng isang kilala at nakaayos nang URL, at gumagamit na ng URL library ang iyong application. Hindi rin ito ang tamang proseso kung kailangan mong subukan kung available ang address, sundan ang mga redirect, i-decode ang bawat query parameter o tiyaking mapagkakatiwalaan ang isang domain.
Para sa paulit-ulit o automated na gawain, gamitin ang mga URL facility na native sa iyong environment. May parse_url ang PHP, may URL interface ang browser JavaScript, nagbibigay ang Node.js ng URL class, at kasama sa Python ang urllib.parse. Mas angkop ang isang maliit na command-line script kaysa manu-manong pag-parse kapag nagpoproseso ng log file na naglalaman ng libo-libong address.
Huwag mag-parse para lamang baguhin ang format ng isang URL na nasa eksaktong anyong kailangan na ng tumatanggap na system. Ang muling pag-encode o pagbuo ng mga address nang walang malinaw na dahilan ay maaaring magbago sa mga query signature, duplicate na parameter o reserved character.
Mga madalas itanong
Maaari bang mag-parse ng URL na walang http o https?
Oo. Kayang bigyang-kahulugan ng parse_url function ng PHP ang mga relative reference at bahagyang URL, bagaman walang makukuhang scheme kung walang ibinigay nito. Mag-ingat sa mga scheme-relative address na nagsisimula sa dalawang slash dahil nakadepende ang kahulugan ng mga ito sa nakapaligid na document o application.
Mananatili ba ang mga nauulit na query parameter?
Raw component ang ibinabalik para sa query, kaya maaaring manatili sa orihinal na pagkakasunod-sunod ang mga nauulit na pangalan. Ang paraan ng pag-convert sa mga value gaya ng tag=red&tag=blue bilang mga array o magkakahiwalay na value ay nakadepende sa query-string parser na gagamitin pagkatapos.
Ligtas bang mag-paste ng signed URL?
Ipinapadala ang input sa pamamagitan ng HTTPS at hindi ito iniimbak, ngunit maaari pa ring magbigay ng access sa pribadong content ang isang signed URL habang valid ang signature nito. Alisin ang token o palitan ang hostname at mga value ng mga placeholder na kumakatawan sa mga ito kapag hindi kailangan ang eksaktong credential.
Bakit naiiba ang kilos ng mukhang valid na URL sa application ko?
Maaaring magmula ang mga pagkakaiba sa query decoding at Unicode normalisation na partikular sa framework. Maaari ding magpatupad ang mga application ng mga karagdagang panuntunan pagkatapos mag-parse, kabilang ang mga hostname allowlist at paghihigpit sa redirect. Ihambing ang raw URL byte for byte, pagkatapos ay tingnan kung ano ang dini-decode o muling isinusulat ng iyong application bago ipadala ang request.
Mga sikat na tool
Madaling bumuo ng sarili mong pasadyang pirma at i-download ito nang madali.
Kunin ang laki ng isang teksto sa Bytes (B), Kilobytes (KB) o Megabytes (MB).
Kumuha ng isang IP at subukang hanapin ang domain/host na nauugnay dito.
Gamitin ang aming ping tool upang mabilis na suriin ang katayuan at oras ng pagtugon ng anumang website, server o port.
Nagbibigay ang IP lookup tool ng Digily Link ng detalyadong impormasyon tungkol sa anumang IP address. Gamitin ang libreng online na serbisyong ito para sa komprehensibong datos ng IP.
Bumuo agad ng libreng WhatsApp link. Magdagdag ng pasadyang mensahe at magsimula ng chat sa isang click, nang walang login o coding.