What Is An Octet Stream

5/7/2019by admin

The octet rule refers to the tendency of atoms to prefer to have eight electrons in the valence shell. When atoms have fewer than eight electrons, they tend to react and form more stable compounds. When discussing the octet rule, we do not consider d or f electrons. Only the s and p electrons are involved in the octet rule, making it useful for the main group elements (elements not in the transition metal or inner-transition metal blocks); an octet in these atoms corresponds to an electron configurations ending with (s^2p^6).

  1. What Is Mediatype.application_octet_stream
  2. What Is Application/octet-stream Content Type
  3. Octet Stream Files

Introduction

In 1904, Richard Abegg formulated what is now known as Abegg's rule, which states that the difference between the maximum positive and negative valences of an element is frequently eight. This rule was used later in 1916 when Gilbert N. Lewis formulated the 'octet rule' in his cubical atom theory. Atoms will react to get in the most stable state possible. A complete octet is very stable because all orbitals will be full. Atoms with greater stability have less energy, so a reaction that increases the stability of the atoms will release energy in the form of heat or light.

Octet Rule

A stable arrangement is attended when the atom is surrounded by eight electrons. This octet can be made up by own electrons and some electrons which are shared. Thus, an atom continues to form bonds until an octet of electrons is made.

  1. Normally two electrons pairs up and forms a bond, e.g., (H_2)
  2. For most atoms there will be a maximum of eight electrons in the valence shell (octet structure), e.g., (CH_4)

Figure 1: Bonding in (H_2) and methane ((CH_4))

The other tendency of atoms is to maintain a neutral charge. Only the noble gases (the elements on the right-most column of the periodic table) have zero charge with filled valence octets. All of the other elements have a charge when they have eight electrons all to themselves. The result of these two guiding principles is the explanation for much of the reactivity and bonding that is observed within atoms: atoms seek to share electrons in a way that minimizes charge while fulfilling an octet in the valence shell.

Note

The noble gases rarely form compounds. They have the most stable configuration (full octet, no charge), so they have no reason to react and change their configuration. All other elements attempt to gain, lose, or share electrons to achieve a noble gas configuration.

Example 1: NaCl Salt

The formula for table salt is NaCl. It is the result of Na+ ions and Cl- ions bonding together. If sodium metal and chlorine gas mix under the right conditions, they will form salt. The sodium loses an electron, and the chlorine gains that electron. In the process, a great amount of light and heat is released. The resulting salt is mostly unreactive — it is stable. It will not undergo any explosive reactions, unlike the sodium and chlorine that it is made of. Why?

SOLUTION

Referring to the octet rule, atoms attempt to get a noble gas electron configuration, which is eight valence electrons. Sodium has one valence electron, so giving it up would result in the same electron configuration as neon. Chlorine has seven valence electrons, so if it takes one it will have eight (an octet). Chlorine has the electron configuration of argon when it gains an electron.

The octet rule could have been satisfied if chlorine gave up all seven of its valence electrons and sodium took them. In that case, both would have the electron configurations of noble gasses, with a full valence shell. However, their charges would be much higher. It would be Na7- and Cl7+, which is much less stable than Na+ and Cl-. Atoms are more stable when they have no charge, or a small charge.

Contributors

Join GitHub today

GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.

Sign up New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments

commented Jan 24, 2016

application/octet-stream is not a neutral content-type. When used in the Content-Type header of an http response, it may trigger download (and possibly execution).
On top of being an unwanted behavior in most cases, this is a security issue.
In case of serving files uploaded by users, It may allow them to makes visitors download virus and malwares without them knowing it (depending on the browser/download manager, the download could be hardly noticeable). Some OS/browser combination may also execute it or propose to execute it.

Also, assuming a file (or directory) is a binary file just because it has an unknwon extension is totally wrong and an unexpected behavior.

The expected and optimal behavior is to return null when the content type could not be guessed.

We've discussed a bit on the subject here: pillarjs/send#98

commented Jan 24, 2016

In case returning null is not acceptable for backward compatility reasons,

  • text/plain would be a better default on the web for security reasons (the content will never be downloaded nor executed)
  • application/unknown could be also a good default because it is less handled specifically by browsers (not downloaded) and it also allow to handle it server side because this is not the type of another known file.

commented Jan 24, 2016

In a standard point of view, here the rules:

  • RFC-2046 which defines only known types

The 'octet-stream' subtype is used to indicate that a body contains arbitrary binary data.

  • RFC-7231 which tell what to do when the type is unknown

A sender that generates a message containing a payload body SHOULD
generate a Content-Type header field in that message unless the
intended media type of the enclosed representation is unknown
to the
sender. If a Content-Type header field is not present, the recipient
MAY either assume a media type of 'application/octet-stream'
([RFC2046], Section 4.5.1) or examine the data to determine its type.

So unknown type => no Content-Type header.

added a commit to felicienfrancois/node-mime that referenced this issue Mar 1, 2016

Set default_type to null instead application/octet-stream

referenced this issue Mar 1, 2016

Closed

Set default_type to null instead application/octet-stream #143

commented Mar 23, 2017

+1 This would help me as well.

This was referenced Jun 15, 2017

Closed
Closed

What Is Mediatype.application_octet_stream

added the V2 label Jun 15, 2017

What Is Application/octet-stream Content Type

referenced this issue Jun 15, 2017

Closed

don't make default_type global #78

commented Sep 15, 2017

Octet Stream Files

Fixed in v2

referenced this issue Mar 1, 2018

Closed

why mime.getType('unknown') returns null rather then 'application/octet-stream' #195

referenced this issue Jul 17, 2018

Merged

fix early bail when testing if string field should link to File node #6504

referenced this issue Oct 16, 2018

Merged

Add guess_mime_type_str #38

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment