Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I find the term "protocol" confusing (in the terms of computer science that is). If the protocol is just a set of rules, wouldn't it be easier if we used the term "standard" instead (like in "HTTP standard")?

share|improve this question
4  
What? I have a non-standard protocol that I use every day for communication with a server. Clearly, the words "protocol" and "standard" have nothing to do with each other. Why are you asking? Where have you seen these words in a confusing context? Please expand your question to explain more fully what confuses you. –  S.Lott Sep 2 '11 at 10:25
    
@S.Lott, Why do you think your protocol is non-standard? –  Emanuil Rusev Sep 2 '11 at 11:13
1  
It's non-standard because I invented it. I know it's in no existing standard because it's uniquely mine. And it's really bad. And I should have used HTTP, which is a standard protocol. Your comment does not explain your confusion. Please explain how you're confused between Protocol ("rules") and Standard ("approved by a committee") –  S.Lott Sep 2 '11 at 12:46
    
All standards are invented by someone. A defined set of rules is a standard, regardless of how many people use it. Am I wrong? –  Emanuil Rusev Sep 2 '11 at 12:56
1  
Perhaps it helps to think of a protocol as a specific type of standard: a standard that describes the format of exchanged messages between computers. –  Kwebble Sep 2 '11 at 14:43
show 5 more comments

7 Answers

A protocol is not a set of rules. A protocol is the thing those rules describe the rules of. This is why programs implement a protocol and comply with a standard.

Protocols are like languages. Standards are like dictionaries. For example, by analogy:

This answer = A web page
English language = the HTTP protocol
Rules of English = the HTTP standard

share|improve this answer
    
I don't get it. The HTTP protocol can describe a response from a server, which basically is a web page. Should that mean that the web page itself is a protocol? –  Emanuil Rusev Sep 2 '11 at 9:54
    
The standard describes the protocol. The protocol doesn't describe anything. The English language doesn't describe my answer to your question. My answer is not the English language. –  David Schwartz Sep 2 '11 at 9:57
2  
@Emanuil, the HTTP protocol doesn't describe a response from a web page; it describes the ways to communicate with a web server (including the ways to get web pages from said server). The protocol itself isn't the least concerned with the actual web pages it is transporting; from the protocol's point of view, the payload is just a sequence of parts, each containing a sequence of characters. That's why the content can be practically anything: images, XML documents and whatnot. And that's why HTTP can be used as a transport mechanism for web services. –  Péter Török Sep 2 '11 at 10:35
2  
@Emanuil, no. Consider what happens when you save a web page as a local file (hierarchy). You can still open it in the browser and it looks exactly the same, although no HTTP is involved anymore. Consider also what happens when you download a movie, a PDF document etc. from the web: the payload of the HTTP response has nothing to do with a web page, it is just a file in a totally arbitrary (MPEG3, PDF, you name it) format. –  Péter Török Sep 2 '11 at 12:03
2  
@Emanuil, HTTP does indeed define how the package (an HTTP message) should look like, but it also defines what different parties (server, client, proxy) must / may / may not do with the message: how (not) can it be modified and/or stored, what responses to send in specific situations, etc. etc. –  Péter Török Sep 2 '11 at 12:25
show 7 more comments

Not all protocols are standards (some are proprietary). Not all standards are protocols (some govern other layers than communcation).

share|improve this answer
    
Can't a standard be proprietary? –  Emanuil Rusev Sep 2 '11 at 9:56
5  
Proprietary standards aren't really standards; noone else can (or would) implement them, and the original author is free to change them at will. –  Scott Wilson Sep 2 '11 at 9:59
1  
A proprietary standard can have a formal process for suggesting, approving, and making changes just like an open one can. There is no reason the process must be "the original author can do as he pleases". In fact, I would say that would be an incredible exception to the rule. (I maintain one proprietary standard that my company is bound by contract to change only according to documented procedures that include notification and input from other affected parties at partner companies. This is in fact a standard clause in change management policies at many large companies.) –  David Schwartz Sep 2 '11 at 10:07
add comment

I think to answer this question, we can include other terms too, to make the concepts more clear:

  1. Protocol: A set of rules for communication between computers (thus, you hear protocol usually in the field of network)
  2. Standard: A level of quality; Thus, you can write code, which works, but is not a quality code or non-standard.
  3. Convention: Just a kind of agreement, like telling somebody to put the images inside img folder. Not following conventions doesn't break the functionality, but is considered bad among the people who have agreed on that convention.
  4. Specification: A detailed description, especially one providing information needed to make, build, or produce something.
share|improve this answer
    
Isn't the protocol the abstract thing that the rules describe the rules of? The game of Chess isn't the same as the rules of Chess, is it? Aren't protocols more like games than rules? –  David Schwartz Sep 2 '11 at 10:04
    
"A level of quality" is too narrow of a definition. How is the ISO 3166-1 standard a level a quality? –  Emanuil Rusev Sep 2 '11 at 11:21
add comment

Definition of Protocol:

an original draft, minute, or record from which a document, especially a treaty, is prepared.

Definition of standard:

something considered by an authority or by general consent as a basis of comparison; an approved model.

Back to your question

If the protocol is just a set of rules, wouldn't it be easier if we used the term "standard" instead (like in "HTTP standard")?

HTTP is both a protocol and a standard. It is, in fact, a standard protocol.

Quoted from wiki

The standards development of HTTP has been coordinated by the Internet Engineering Task Force (IETF) and the World Wide Web Consortium (W3C), culminating in the publication of a series of Requests for Comments (RFCs), most notably RFC 2616 (June 1999), which defines HTTP/1.1, the version of HTTP in common use.

share|improve this answer
    
In other words, a "protocol" is the thing a specification formalizes. –  David Schwartz Sep 2 '11 at 10:38
add comment

In my understanding, a protocol describes the communication between two points. One point creates some data that the other point must interprete. A protocol describes the data format, the states, requests and answers, and so on. E.g. a HTTP request from the client and the answer from the server.

For a specific problem, there are a gazillion possible protocols. Out of these, a standard choses one specific protocol and makes it kind of mandatory. If all communication end points act accordingly to the standard, they can communicate with each other and understand each other.

This can happen officially or inofficially, because all communication partners just happen to use the same protocol which then became the standard protocol.

share|improve this answer
add comment

A computer protocol is a set of rules that determine the format and transfer of data. The term protocol is used because it closely mirrors the rules of behaviour between individuals or nations. The set of formal rules that are common in computer protocols are very similar to the rules of diplomacy (diplomatic protocol) or etiquette (personal protocol). A standard is something different and not a rich a word to describe the interactions that are expressed within a protocol. Also as noted by others a protocol may not need to be standard.

Finally, C3PO was a Protocol droid. He could therefore mediate between both Astro Mech Droids, Moisture Vaporaters and Ewoks. Calling him a Standard droid would not have so richly desribed his function.

share|improve this answer
add comment

A protocol define a set of rules used by two or more parties to interact between themselves.

A standard is a formalized protocol accepted by most of the parties that implement it.

share|improve this answer
    
That's straight to the point, thanks +1 for that –  dotNetSoldier Feb 24 '13 at 9:15
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.