আমি কীভাবে নিজের ইউআরএল প্রোটোকল তৈরি করব? (যেমন: // ...) [বন্ধ]


212

আমি দেখেছি:

  • http://www...
  • ftp://blah.blah...
  • file://blah.blah...
  • unreal://blah.blah...
  • mailto://blah.blah...

আপনি দেখতে পেলেন এমন প্রথম বিভাগটি কী http?

আমি কি আমার নিজের নিবন্ধন করতে পারি?


5
এটির জন্য সি # এবং। নেট ট্যাগগুলি দরকার কিনা নিশ্চিত না, এটি এর চেয়ে আরও বিস্তৃত।
রব হুরস্কা

এটা সঙ্গত. আমি কেবল এটি সেভাবে ট্যাগ করেছিলাম কারণ আমরা এরকম কিছু বাস্তবায়নের জন্য সি # ব্যবহার করার পরিকল্পনা করছিলাম। ধন্যবাদ যদিও. :-)
মাইকেল বেক

14
সঠিক নামটি "স্কিম" (আরএফসি 2616 এবং 2396 দেখুন)। এমনকি যদি অনেকগুলি ইউআরএল স্কিমগুলির নাম প্রোটোকলের নামে রাখা হয়, তবে এটি বোঝায় না যে সংস্থানটি অ্যাক্সেসের একমাত্র উপায় প্রোটোকলের মাধ্যমে রয়েছে
মেরেক

প্রোটোকল দুটি ধরণের আছে তবে এগুলি পৃথক করতে কোন শব্দটি ব্যবহার করব তা আমি জানি না। "ফাইল" এবং "মেলটো" প্রোটোকলগুলি ক্লায়েন্টে প্রক্রিয়াজাত হয়। "HTTP" এবং "ftp" প্রোটোকলগুলি সার্ভারে প্রক্রিয়া করা হয়। যখন আমি সার্ভারে প্রক্রিয়াজাত কিছু চাই তখন ব্রাউজারে প্রক্রিয়াজাত প্রোটোকলগুলির উত্তরগুলি দ্বারা প্রথমে আমি বিভ্রান্ত হয়ে পড়েছিলাম।
ব্যবহারকারী 34660

উত্তর:


203

সঙ্গে অংশ HTTP://, FTP://ইত্যাদি বলা হয় কোনো URI স্কিম

আপনি রেজিস্ট্রি মাধ্যমে আপনার নিজের নিবন্ধন করতে পারেন।

HKEY_CLASSES_ROOT/
  your-protocol-name/
    (Default)    "URL:your-protocol-name Protocol"
    URL Protocol ""
    shell/
      open/
        command/
          (Default) PathToExecutable

সূত্র: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http : //msdn.mic Microsoft.com/en-us/library/aa767914(v=vs.85).aspx


19
উইন্ডোজ অপারেটিং সিস্টেমগুলি সম্পর্কে কী?
বিডোসরর

9
"উইন্ডোজ অপারেটিং সিস্টেমগুলি সম্পর্কে কী?" এটি অ্যাপ্লিকেশন-নির্দিষ্ট। আমি মনে করি এটি উইন্ডোজেও আসলে প্রায়শই অ্যাপ্লিকেশন-নির্দিষ্ট (এটি যাদুকরীভাবে কাজ করে না)।
কলম

2
সব কিছু সংজ্ঞায়িত করুন। রেজিস্ট্রি এন্ট্রি উইন্ডোজকে উল্লিখিত অ্যাপ্লিকেশনটিতে সেই প্রোটোকল সহ উরি পাস করতে বলে, অন্য সমস্ত কিছু নিজেই অ্যাপ্লিকেশন দ্বারা পরিচালনা করা উচিত।
জেমস গ্রেগরি 19

5
প্লাগেবল প্রোটোকল হ্যান্ডলার অবশ্যই আরও ভাল পছন্দ।

8
(Default)এখানে খালি স্ট্রিং মানে। আক্ষরিকভাবে এটি গ্রহণ করবেন না।
ডিয়ারচাও

56

নোটপ্যাড খুলুন এবং নীচে কোডটি এতে আটকান। আপনার অ্যাপের নামে "আপনার অ্যাপ" পরিবর্তন করুন Change এটি আপনার অ্যাপ্লিকেশন.রেগ এ সংরক্ষণ করুন এবং এটি এক্সপ্লোরারে ক্লিক করে এটি সম্পাদন করুন। এটাই! চিয়ার্স! এরউইন হান্টজেস

REGEDIT4

[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""

[HKEY_CLASSES_ROOT\YourApp\shell]

[HKEY_CLASSES_ROOT\YourApp\shell\open]

[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""

2
এক্সপ্লোরার থেকে কীভাবে কল করবেন, ইউআরএল কী
ইম

@ আইপ, (ইন্টারনেট) এক্সপ্লোরার থেকে .reg ফাইলগুলি কল করা কোনও স্মার্ট ধারণা নয়। আপনি স্টার্ট কমান্ডটি একটি 'রেজিস্ট্রি স্টার্ট আরিগ্রিফিল.রেগ' এর মতো এক্সিকিউট করার জন্য ব্যবহার করতে পারেন তবে রেজিস্ট্রিতে এটি যুক্ত করার বিষয়ে নিশ্চিত হওয়ার জন্য আপনি ওএস থেকে একটি প্রম্পট বার্তা পাবেন। এটি সক্ষম করতে ব্যবহারকারীর অবশ্যই প্রশাসকের অধিকার থাকতে হবে।
কোডবিট

আসলে আমি এই প্রশ্ন সম্পর্কে জিজ্ঞাসা করছি stackoverflow.com/questions/24265292/…
ইম

3
রেগ ফাইলে থাকা% 1% 2 ইত্যাদি হ'ল আপনার অ্যাপ্লিকেশনটির জন্য আর্গুমেন্ট s সুতরাং আপনি যদি আপনার অ্যাপ.সেক্স করেন "আপনার যুক্তি" তাই% 1 == "আপনার যুক্তি"
কোডবিট

1
শুধুমাত্র% 1 বিষয়গুলি, url% 2 এবং% 3 ইত্যাদিতে নির্দিষ্ট করার কোনও উপায় নেই
ট্রিটেন্ট

39

প্রতিটি ব্রাউজারের জন্য এটি আলাদা হয়, আইই এবং উইন্ডোজগুলিতে আপনাকে প্লাগেবল প্রোটোকল হ্যান্ডলার বলে সেগুলি তৈরি করতে হবে।

প্রাথমিক পদক্ষেপগুলি নিম্নরূপ:

  1. IInternetProtocol ইন্টারফেস প্রয়োগ করুন।
  2. IInternetProtocolRoot ইন্টারফেস প্রয়োগ করুন।
  3. আইসি ক্লাসফ্যাক্টরি ইন্টারফেস প্রয়োগ করুন।
  4. ঐচ্ছিক। IInternetProtocolInfo ইন্টারফেস প্রয়োগ করুন। এইচটিটিপি প্রোটোকলের জন্য সমর্থন লেনদেন হ্যান্ডলার দ্বারা সরবরাহ করা হয়।
  5. যদি IInternetProtocolInfo বাস্তবায়িত হয়, PARSE_SECURITY_URL এবং PARSE_SECURITY_DOMAIN এর জন্য সমর্থন সরবরাহ করুন যাতে URL সুরক্ষা অঞ্চল ব্যবস্থাপক সুরক্ষাটি সঠিকভাবে পরিচালনা করতে পারে। আপনার প্রোটোকল হ্যান্ডলারের জন্য কোডটি লিখুন।
  6. BINDF_NO_UI এবং BINDF_SILENTOPERATION এর জন্য সহায়তা সরবরাহ করুন।
  7. HKEY_CLASSES_ROOT \ PROTOCOLS \ হ্যান্ডলারের অধীনে রেজিস্ট্রিতে আপনার প্রোটোকল হ্যান্ডলারের জন্য একটি সাবকি যুক্ত করুন।
  8. সাবকি এর নীচে একটি স্ট্রিং মান সিএলএসআইডি তৈরি করুন এবং আপনার প্রোটোকল হ্যান্ডলারের সিএলএসআইডিতে স্ট্রিংটি সেট করুন।

উইন্ডোজ পাশের আরও তথ্যের জন্য এমএসডিএন-তে অ্যাসিঙ্ক্রোনাস প্লাগেবল প্রোটোকল সম্পর্কে দেখুন । উইন্ডোজ এসডিকে একটি নমুনাও রয়েছে।

একটি তাত্ক্ষণিক গুগল এই নিবন্ধটি কোডপোজেক্টেও দেখিয়েছে: http://www.codeproject.com/KB/IP/DataProtocol.aspx

পরিশেষে, একটি সুরক্ষা লোক হিসাবে আমি এটি উল্লেখ করতে হবে যে এই কোডটি যুদ্ধটিকে আরও কঠোর করা দরকার। এটি একটি উচ্চ ঝুঁকির কারণ এটি নির্ভরযোগ্যভাবে করার জন্য আপনি এটি পরিচালিত কোডে করতে পারবেন না এবং এটি সি ++ এ করতে হবে (আমি মনে করি আপনি ভিবি 6 ব্যবহার করতে পারেন)। আপনার সত্যিই এটি করা দরকার কিনা তা বিবেচনা করা উচিত এবং যদি আপনি এটি করেন তবে এটি সাবধানে ডিজাইন করুন এবং এটি নিরাপদে কোড করুন। কোনও আক্রমণকারী সহজেই কোনও পৃষ্ঠায় একটি লিঙ্ক অন্তর্ভুক্ত করে আপনার কাছে দেওয়া সামগ্রীটিকে সহজেই নিয়ন্ত্রণ করতে পারে। উদাহরণস্বরূপ, যদি আপনার একটি সরল বাফার ওভারফ্লো হয় তবে এর চেয়ে ভাল আর কেউ করবেন না:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>

ভিসি 8 এবং উপরের সংকলকগুলিতে অন্তর্ভুক্ত নতুন স্টারসেফ এবং নতুন সুরক্ষিত সিআরটি পদ্ধতিগুলি ব্যবহার করার জন্য দৃong়তার সাথে বিবেচনা করুন। Http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx দেখুন, আমি কী বলছি তা যদি আপনার কোনও ধারণা না থাকে।


6
এটি ক্লিক করে ব্যবহারকারীদের প্ররোচিত করার জন্য এটি কেবল উদাহরণ example
পিটার ওহেলার্ট

দয়া করে এটি ব্যাখ্যা করুন: reli কারণ এটি নির্ভরযোগ্যভাবে করার জন্য আপনি এটি পরিচালিত কোডে করতে পারবেন না এবং এটি সি ++ do এ করতে হবে
লজিকডেমোন

2
এটি। নেট 2.0 রানটাইম (নোট, এতে 3.0 এবং 3.5 অন্তর্ভুক্ত) টাইমফ্রেম রয়েছে। এটি একই প্রক্রিয়াতে বিভিন্ন সিএলআর রানটাইম সমর্থন করে না, সুতরাং যদি আমি একটি ১.০ হ্যান্ডলার লিখে থাকেন এবং আপনি একটি ২.০ লিখেছেন এবং আমাদের দুটি পণ্যই গ্রাহকের কম্পিউটারে ইনস্টল করা হয়েছিল, আমরা একসাথে নিশ্চিত হয়েছি যে ব্রাউজারটি প্রতিবার ক্রাশ হয় hes এটি চালু হয়েছে। Run.০ রানটাইমটি এই সমস্যাটিকে লক্ষ্য করার চেষ্টা করেছিল তবে আমার স্মরণে এখনও সীমানা সম্পর্কিত বিষয়গুলি উদ্বিগ্ন ছিল। তবে সংক্ষিপ্তসারটি ব্যবহার করছে। নেটিভ প্রসেসগুলিতে প্লাগইনগুলির জন্য নেট বস্তুগুলি 4.0 এর আগে একেবারে এড়ানো উচিত ছিল এবং এখনও চিন্তার জন্য কোণার ক্ষেত্রে থাকতে পারে।
পিটার ওহলার্ট 13

19

নিবন্ধিত ইউআরআই স্কিমগুলির একটি তালিকা এখানে । প্রত্যেকের একটি আরএফসি থাকে - এটি সংজ্ঞায়িত করে এমন একটি দস্তাবেজ, যা প্রায় মানক। আরএফসি নতুন অ্যাপ্লিকেশনগুলির বিকাশকারীদের (যেমন ব্রাউজারগুলি, এফটিপি ক্লায়েন্টস ইত্যাদি) তাদের কী সমর্থন করতে হবে তা বলে। আপনার যদি নতুন বেস-স্তরীয় প্রোটোকল প্রয়োজন হয় তবে আপনি একটি নিবন্ধবিহীন একটি ব্যবহার করতে পারেন। অন্যান্য উত্তরগুলি আপনাকে জানায় কীভাবে। মনে রাখবেন আপনি বিদ্যমান প্রোটোকলগুলির সাহায্যে প্রচুর পরিমাণে কাজ করতে পারেন, এইভাবে তাদের বিদ্যমান বাস্তবায়নগুলি অর্জন করে।


6
উইন্ডোজে প্রোটোকল কীভাবে কাজ করা যায় তার প্রযুক্তিগত বিবরণ সত্ত্বেও - এটি সবচেয়ে গুরুত্বপূর্ণ উত্তর। আইইটিএফ-এর সাথে নিবন্ধিত না হওয়া বা পরীক্ষামূলক নেমস্পেস (এক্স-প্রিফিক্সের মতো) ব্যবহার না করা আপনার নতুন ইউআরআই স্কিম তৈরি করা উচিত নয়
Alnitak

4

বেশিরভাগ মাইক্রোসফ্ট পণ্যগুলির জন্য (ইন্টারনেট এক্সপ্লোরার, অফিস, "ওপেন ফাইল" ডায়ালগ ইত্যাদি) আপনি যখন উপযুক্ত উপসর্গ সহ ইউআরআই খোলেন তখন চালানোর জন্য কোনও অ্যাপ্লিকেশন নিবন্ধন করতে পারেন । এটি আরও সাধারণ ব্যাখ্যার একটি অংশ - কীভাবে আপনার নিজের প্রোটোকলটি প্রয়োগ করবেন।

মজিলার জন্য ব্যাখ্যাটি এখানে , জাভা - এখানে


2

একে বলা হয় প্রোটোকল। আপনাকে কেবল নিজের প্রোটোকল তৈরি করতে বাধা দেয় তা হ'ল:

  1. কিছু প্রকারের ব্রাউজার বা ব্যবহারকারী এজেন্ট লিখুন যা সেই প্রোটোকলটি তার URL ফর্ম এবং প্রকৃত ডেটা ফর্ম্যাটে উভয়ই বোঝে
  2. এমন একটি সার্ভার লিখুন যা সেই প্রোটোকল বোঝে
  3. সাধারণত, প্রোটোকলের জন্য একটি নির্দিষ্টকরণ রাখুন যাতে ব্রাউজার এবং সার্ভার একসাথে কাজ চালিয়ে যেতে পারে।

উইন্ডোজ # 1 কে সত্যিই সহজ করে তোলে, অনেক ক্ষেত্রে এটিই আপনার আসল প্রয়োজন। যেমন:

কোনও ইউআরএল প্রোটোকলে একটি অ্যাপ্লিকেশন নিবন্ধন করা হচ্ছে


1

প্রথম বিভাগটিকে একটি প্রোটোকল বলা হয় এবং হ্যাঁ আপনি নিজের নিবন্ধন করতে পারেন। উইন্ডোজে (যেখানে আমি ধরে নিচ্ছি যে আপনি সি # ট্যাগের সাহায্যে এটি করছেন - দুঃখিত মনোর অনুরাগী), এটি রেজিস্ট্রি মাধ্যমে করা হয়েছে



-10

আপনাকে সত্যিকারের মতো কোনও নিবন্ধকরণ করতে হবে না। আমি ইমুলের মতো অনেকগুলি প্রোগ্রাম দেখেছি তাদের নিজস্ব প্রোটোকল স্পেসিফায়ার তৈরি করেছি (এটাকেই আমি মনে করি এটি বলা হয়)। এর পরে, আপনাকে প্রাথমিকভাবে রেজিস্ট্রিতে কিছু মান নির্ধারণ করতে হবে যা প্রোগ্রাম সেই প্রোটোকলটি পরিচালনা করে। প্রোটোকল স্পেসিফায়ারদের কোনও অফিসিয়াল রেজিস্ট্রি আছে কিনা তা সম্পর্কে আমি নিশ্চিত নই। আপনি যদি লোকেরা তাদের ব্রাউজার থেকে আপনার অ্যাপ্লিকেশনটি খুলতে চান তবে আপনার নিজের অ্যাপ্লিকেশনের জন্য আপনার নিজস্ব প্রোটোকল স্পেসিফায়ার তৈরি করা থেকে বিরত করার মতো আসলেই খুব বেশি কিছু নেই।


4
-1: বিপথগামী, ভুল নামকরণ ব্যবহার করে এবং কোনও আসল মান সরবরাহ করে না
Marek
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.