What Do Those 404 and Other HTTP Return Codes Mean?

You try to access a web page but all you get is a mysterious code number. What do they mean? This page attempts to address that topic.

Governing Document

Web standards are governed by documents prepared by standards committees, approved, and then implemented world-wide. Following are notes extracted from RFC2068Web Link, the draft governing document for the hypertext protocol.

Message Number Categories

Because you usually only see one or two error numbers it’s easy to believe that’s all there are. Actually, there are families of numbers; and, not all are errors. We’ll explore each family and its members below.

1xx Codes (Information). There are a few official codes in the one hundred range. But, if you see one you have probably stumbled onto some sort of experimental application. In this case, what you see will be non-standard and could be most anything.

  • 100 (Continue). An interim response telling the browser the initial part of its request has been received and not rejected by the server. A final response code should be sent when the remainder of the material has been sent.
  • 101 (Switching Protocols). The browser may wish to change protocols it’s using. If such a request is sent and approved by the server this response is given.

2xx Codes (Success). The two hundred range is reserved for successful responses. You probably won’t see one of these codes, but your browser will receive them and know that whatever request was sent by the browser was received, understood, and accepted.

  • 200 (OK). The request was successful and information was returned. This is, by far, the most common code returned on the web.
  • 201 (Created). If a POST command is issued by a browser (usually in processing a form) then the 201 code is returned if the resource requested to be created was actually created. If there is a delay in creating the resource the response should be 202, but may be 201 and contain a description of when it will be created.
  • 202 (Accepted). If a request for processing was sent and accepted but not acted upon and the delay in acting is unknown, then this code should be sent instead of 201. Note that 202 does not commit to processing the request; it only says the request was accepted. A pointer to some status monitor for the task is often included with this response so users can check back later.
  • 203 (Non-Authoritative Information). Usually the preliminary information sent from a server to a browser comes directly from the server. If it does not, then this code might also be sent to indicate that information did not come from a known source.
  • 204 (No New Content). The request was accepted and filled but no new information is being sent back. The browser receiving this response should not change its screen display (although new, and changed, private header information may be sent).
  • 205 (Reset Content). When you fill in a form and send the data, the server may send this code telling the browser that the data was received and the action carried out so the browser should now clear the form (or reset the display in some manner).
  • 206 (Partial Content). This code indicates the server has only filled part of a specific type of request.

3xx (Redirection). The 3xx codes indicate some need for further action by your browser. User action may or may not be necessary to cause this further action to take place; often it will just happen automatically. There are safeguards built into the specification designed to prevent infinite loops, which can sometimes result from automatic redirection.

  • 300 (Multiple Choice). You should not see 300 standing alone; it serves as a template for the following specific codes.
  • 301 (Moved Permanently). As the name implies, the addressed resource has moved and all future requests for that resource should be made to a new URL. Sometimes there is an automatic transfer to the new location.
  • 302 (Moved Temporarily). The addresses resource has moved, but future requests should continue to come to the original URL. Sometimes there is an automatic transfer to the new location.
  • 303 (See Other). The response to your browser’s request can be found elsewhere. Automatic redirection may take place to the new location.
  • 304 (Not Modified). In order to save bandwidth your browser may make a conditional request for resources. The conditional request contains an “If-Modified-Since” field and if the resource has not changed since that date the server will simply return the 304 code and the browser will use its cached copy of the resource.
  • 305 (Use Proxy). This is notice that a specific proxy server must be used to access the resource. The URL of the proxy should be provided.

4xx (Client Error). The 4xx codes are the ones you are most likely to actually see; particularly code 404. These codes indicate some sort of error has happened.

  • 400 (Bad Request). The server did not understand the request. This is usually cured by resending the request.
  • 401 (Unauthorized). The request requires some form of authentication (e.g., userid and/or password) but did not contain it. Usually, this code results in a box popping up in your browser asking you for the required information. Once you supply it the request is sent again.
  • 402 (Payment Required). Reserved for future use. [Who says the web is not moving toward being a commercial medium!]
  • 403 (Forbidden). This is a sort of catch-all refusal. If the server understood the request but, for whatever reason, refuses to fill it, a code 403 will often be returned. The server may or may not explain why it is sending a 403 response and there is not much you can do about it.
  • 404 (Not Found). If you happen to mistype a URL or enter an old one that no longer exists this is the error you will likely see. The condition may be temporary or permanent but this information is rarely provided. Sometimes code 403 is sent in place of 404.
  • 405 (Method Not Allowed). Your browser has requested a resource using a procedure not allowed to obtain that resource. The response should contain allowed procedures.
  • 406 (Not Acceptable). Your browser said only certain response types will be accepted and the server says the content requested does not fit those response types. (This is one way content monitoring can be implemented.)
  • 407 (Proxy Authentication Required). This code is similar to 401, except that the browser must first authenticate itself.
  • 408 (Request Timeout). Your browser waited too long and the server timed out. A new request must be sent.
  • 409 (Conflict). If a site allows users to change resources and two users attempt to change the same resource there is a conflict. In this, and other such situations, the server may return the 409 code and should also return information necessary to help the user (or browser) resolve the conflict.
  • 410 (Gone). Code 410 is more specific than 404 when a resource can’t be found. If the server knows, for a fact, that the resource is no longer available and no forwarding address is known, then 410 should be returned. If the server does not have specific information about the resource, then 404 is returned.
  • 411 (Length Required). For some processes a server needs to know exactly how long the content is. If the browser does not supply the proper length code 411 may result.
  • 412 (Precondition Failed). A browser can put conditions on a request. If the server evaluates those conditions and comes up with a false answer, the 412 code may be returned.
  • 413 (Request Entity Too Large). If your browser makes a request that is longer than the server can process code 413 may be returned. Additionally, the server may even close the connection to prevent the request from being resubmitted (this does not mean a phone connection will hang up; just that the browser’s link to the site may be terminated and have to be started over again).
  • 414 (Request-URI Too Long). You will likely not see this one as it is rare. But, if the resource address you’ve sent to the browser is too long this code will result. One of the reasons this code exists is to give the server a response when the server is under attack by someone trying to exploit fixed-length buffers by causing them to overflow.
  • 415 (Unsupported Media Type). If your browser makes a request using the wrong format, this code may result.
  • 451 (Unavailable For Legal Reasons). This status code indicates that the server is denying access to the resource as a consequence of a legal demand.

5xx (Server Error). The 5xx series of codes indicate cases where the server knows it has made an error or is not capable of answering the request. In most cases the server should include some information explaining the error and say if the situation is temporary or permanent.

  • 500 (Internal Server Error). An unexpected condition prevented the server from filling the request.
  • 501 (Not Implemented). The server is not designed (or does not have the software) to fill the request.
  • 502 (Bad Gateway). When a server acts as a go-between it may receive an invalid request. This code is returned when that happens.
  • 503 (Service Unavailable). This code is returned when the server cannot respond due to temporary overloading or maintenance. Some users, for example, have limited accounts which can only handle so many requests per day or bytes send per period of time. When the limits are exceeded a 503 code may be returned.
  • 504 (Gateway Timeout). A gateway or proxy server timed out without responding.
  • 505 (HTTP Version Not Supported). The browser has requested a specific transfer protocol version that is not supported by the server. The server should return what protocols are supported.

What Can Webmasters Do?

Users get frustrated by error messages that don’t really tell them anything. Even the descriptions above for the various return codes don’t say what you, the user, can do.

Webmasters can help. By analyzing their logs a webmaster can determine which error codes are being returned to users. For the most common, more descriptive error messages can be generated and the system told to use them. This latter is done using a file named “.htaccess” placed in the main directory for the web site. [.htaccess is used for Web hosts using UNIX or some UNIX offshoot.]

The .htaccess file can control many things, but to help with error messages the webmaster has only to insert line(s) of the form (each of these should be on a line by itself starting with “ErrorDocument” but they may be wrapped in this display):

  • ErrorDocument 402 “<h1>You have to BUY a <a href=”/subscribe.html”>subscription!</a></h1>
  • ErrorDocument 403 /forbidden.html
  • ErrorDocument 404 http://cknow.com/notfound.html

Note that the ErrorDocument command can have raw HTML code (note the leading quote only; no ending quote), file references, or URL references. Use whichever is appropriate to help users when they encounter errors at your site. If nothing else, include a 404 ErrorDocument command to help those who mistype something. If you don’t they may not come back!

If you want to really help (and keep the search engines happy), when you change your Web site layout consider adding “redirect” lines into the .htaccess file. These cause requests to specific files that have been moved to be automatically directed to their new location and gives feedback to the search engines that the URL has changed. There are two forms you can use:

  • redirect <oldfile> <newURL>
  • redirect permanent <oldfile> <newURL>

The first is for temporary changes (302 above) and the second for permanent changes (301 above). The <oldfile> should be replaced with the exact designation of the old file in relation to the root directory of the domain the .htaccess file applies to. The <newURL> should be just that: the full URL to the new page. This gives the search engines the ability to easily change their listings.

Comments from Original Article:

Said this on 2010-04-22 At 11:16 am
What Do Those 404 and Other HTTP? for the erros what the soulation
Said this on 2010-04-22 At 11:36 am
In reply to #1
Contact the Webmaster for the website in question. The error messages come from the website so the Webmaster has to fix the site to get rid of them. Nothing you can do at your computer.

What is a Country Code and Top Level Domain?

The last characters on a domain name are usually either a country code (e.g., .ac, .br, etc.) or a top level domain (e.g., .com, .org, etc.). This page describes the various values available.

Domain names around the world often have a country code associated with them. To see where these are from take a look at the list below. The links are to the latest WHOIS information for the top level domain.

First Level National Domains For Internet Addresses

Top Level Domains

More Information

Not here? Check the IANA siteWeb Link.

What are Emoticons?

Emoticons are ASCII glyphs originally designed to show an emotional state in plain text messages. Over time they have turned into an art form as well. In most cases, emoticons are constructed to be viewed by tilting your head left so the right side of the emoticon is at the bottom of the “picture.” These simple emoticons have, over time, merged with artwork produced as ASCII characters. This site does not catalog that. If interested, perform a Google search on the term “ASCII art” and you should find multiple sites that host such collections.

Stop Note: Some programs allow you to type in text and a graphic emoticon shows up. This does not apply here. The emoticons here are emoticons you type in. Nothing more. Please don’t ask how to “activate” them; there is nothing here to activate.

Near as any research can pinpoint, the emoticon was invented by Scott E. Fahlman on 19 September 1982 in a message posted on Carnegie Mellon University bulletin board systems. Fahlman is quoted as saying “I propose that the following character sequence for joke markers: 🙂 . Read it sideways. Actually, it is probably more economical to mark things that are NOT jokes, given current trends. For this, use :-(.” [For more on this story see Fahlman’s own pageWeb Link on the subject (with thanks to C.S. for the link).]

As you can see from the full list on this site (which is likely only a small percentage of the totality of emoticons) there are hundreds (thousands?) but only a very few are commonly used. Those are shown on this page. Most of the common ones involve some form of smile or frown giving emoticons the secondary name “smilies.”

Don’t overdo if you use emoticons. Over one in a paragraph and three in a message are a good indicator you are a “newbie.”

If not already shown that way, emoticons are best viewed using a monospaced font. Your browser should have the option for this if they don’t already show up that way.

Please note: The nature of the internet has always been an “anything goes” type of culture. A few of the emoticons in the collection are meant to be suggestive by design. You have to use your imagination, but be warned nevertheless. None of these emoticons were created by Computer Knowledge; they have only been collected from various other sources and cataloged here.

Common Emoticons

  •  🙂  Basic smiley face; used for humor and sometimes sarcasm
  •  🙁  Basic frowney face; used for sadness or anger
  •  😉  Half-smiley or winkey face; more often used for sarcasm
  •  :-/  Wry face; used for wry humor

Alphabetical (by Emoticon) List

CKnow used to display the full list on this page but have decided to stop here and make you click on another link if you wish to view the entire list of around 1,900 entries. If all you wanted to know was what emoticons are then you now have that information. If you need the entire list then it is in a text file linked here. Note: This list is not being actively maintained.

What Are Electronic Communication Acronyms?

To simplify text communications a number of acronyms have been developed. This page expands a collection of some you may encounter. Please note that shortcuts are frequently made up on the spot so there is no possibility of including every acronym you may encounter here. You may also see these in either lower or upper case. I’ve used upper case here for clarity. Also, most of the more rude have not been listed. Note: This list is not being actively maintained.

  • 4EVR = Forever
  • AAAAA = American Association Against Acronym Abuse
  • AATJ = And All That Jazz
  • ADR = Address
  • AFAIC = As Far As I’m Concerned
  • AFAIK = As Far As I Know
  • AFAYC = As Far As You’re Concerned
  • AFK = Away From Keyboard
  • AISI = As I See It
  • AKA = Also Known As
  • ALOL = Actually Laughing Out Loud
  • AML = All My Love
  • ANFSCD = And Now For Something Completely Different
  • ASAP = As Soon As Possible
  • ASL = Age/Sex/Location
  • ASLMH = Age/Sex/Location/Music/Hobbies
  • ASOASF = And So On And So Forth
  • ATM = At The Moment
  • AWOL = Absent Without Leave
  • B/C = Because
  • B4 = Before
  • BAK = Back At Keyboard
  • BBFN = Bye Bye For Now
  • BBL = Be Back Later
  • BBS = Be Back Soon
  • BBSL = Be Back Sooner or Later
  • BCNU = Be Seeing You
  • BCOZ = Because
  • BEOS = Nudge
  • BFN = Bye For Now
  • BKA = Better Known As
  • BRB = Be Right Back
  • BRT = Be Right There
  • BTW = By The Way
  • BUAYA = To Sweet Talk You
  • CFV = Call For Vote
  • CU = See You (good bye)
  • CUL = See You Later
  • CUL8ER = See You Later
  • CY = Calm Yourself
  • CYA = Cover Your A__
  • DH = Dear Hubby (Husband)
  • DL = Download
  • DMI = Don’t Mention It
  • DOD = We could tell you but then we’d have to kill you!
  • DUCT = Did You See That?
  • DYOFDW = Do Your Own F___ing Dirty Work
  • EG = Evil Grin
  • EL = Evil Laugh
  • F2F = Face to Face
  • FAQ = Frequently Asked Questions
  • FAQL = Frequently Asked Questions List
  • FAWC = For Anyone Who Cares
  • FFK = Fong Fei Kei = To Stand You Up
  • FOAF = Friend Of A Friend
  • FTASB = Faster Than A Speeding Bullet
  • FTF = Face To Face
  • FTL = Faster Than Light
  • FUBAR = F_____d Up Beyond All Recognition
  • FWIW = For What It’s Worth
  • FYA = For Your Amusement
  • FYI = For Your Information
  • GA = Go Ahead
  • GALGAL = Give A Little Get A Little
  • GBH = Great Big Hug
  • GD&R = Grinning, Ducking and Running (usually after snide remark)
  • GG = Good Game
  • GGN = Gotta Go Now
  • GL = Good Luck
  • GMTA = Great Minds Think Alike
  • GR8 = Great
  • HIH = Hope It Helps
  • HILIACACLO = Help I Lapsed Into A Coma And Can’t Log Off
  • HTH = Hope This Helps
  • HUGZ = Hugs
  • IAE = In Any Event
  • IANAL = I Am Not A Lawyer
  • IAT = I am Tired
  • IC = I See
  • ICBW = I Could Be Wrong
  • IDK = I Don’t Know
  • IGTP = I Get The Point
  • IHNO = I Have No Opinion
  • IHTFP = I Have Truly Found Paradise (I Hate This F_____n Place)
  • IIR = If I Recall
  • IIRC = If I Recall Correctly
  • IM = Instant Message
  • IMAO = In My Arrogant Opinion
  • IMHO = In My Humble Opinion
  • IMNSHO = In My Not-So-Humble Opinion
  • IMO = In My Opinion
  • INPO = In No Particular Order
  • IOW = In Other Words
  • IRL = In Real Life
  • IYKWIM = If You Know What I Mean
  • IYKWIMAITYD = If You Know What I Mean And I Think You Do
  • JK (or J/K) = Just Kidding
  • JM2C = Just My 2 Cents
  • JT = Just Teasing
  • K = Okay
  • KBD = Keyboard
  • KEWL = Cool
  • KOK = Knock
  • KOTC = Kiss On The Cheek
  • KOTL = Kiss On The Lips
  • L8R = Later
  • LMAO = Laughing My A__ Off
  • LOL = Laughing Out Loud
  • LOLA = Laugh Out Loud Again
  • LOOL = Laughing Outragously Out Loud
  • LTHFO = Laugh Til Head Falls Off (Sometimes seen as HAHAHATHUD)
  • LWR = Launch When Ready
  • LYLAS = Love You Like a Sister
  • MOMPL = One Moment Please
  • MOO = Multi-user Dungeon Object-Oriented
  • MOTAS = Member Of The Appropriate Sex
  • MOTOS = Member Of The Opposite Sex
  • MOTSS = Member Of The Same Sex
  • MSG = Message
  • MTBF = Mean Time Between Failure
  • MTFBWY = May The Force Be With You
  • MUAK = Smooch
  • MUD = Multiple User Dungeon
  • MUSH = Multi User Shared Hallucination
  • N/A = Not Acceptable
  • N1 = Nice One
  • NDA = Non-Disclosure Agreement
  • NM = Nevermind
  • NP = No Problem
  • NRN = No Reply Necessary
  • NTK = Nice To Know
  • OB- = Obligatory (as a prefix)
  • OBJOKE = Obligatory Joke
  • OIC = Oh, I See!
  • OK = All Correct (I Approve)
  • OMG = Oh My God
  • ONNA = Oh No, Not Again
  • ONNTA = Oh No, Not This Again
  • OOI = Out Of Interest
  • OS = Operating System
  • OSLT = Or Something Like That
  • OTOH = On The Other Hand
  • OTOOH = On The Other Other Hand
  • OUSU = Oh, You Shut Up
  • PD = Public Domain
  • PDA = Public Display of Affection
  • PIAK = Slap In The Face
  • PITA = Pain In The A__
  • PLS = Please
  • PM = Personal Message
  • PMFJI = Pardon Me For Jumping In
  • PMIGBOM = Put Mind In Gear Before Opening Mouth
  • PMJI = Pardon My Jumping In
  • POV = Point of View
  • PPL = People
  • PS = Post Script
  • QL = Quit Laughing!
  • QS = Quit Scrolling
  • QT = Cutie
  • RBAY = Right Back At Ya
  • RE = Regards or Hello Again
  • RFC = Request For Comments
  • RFD = Request For Discussion
  • RFI = Request For Information
  • RIT = Alrighty
  • RL = Real Life
  • ROFL = Rolling On Floor Laughing
  • ROFLASTC = Rolling On Floor Laughing And Scaring The Cat
  • ROFLGO = Rolling On Floor Laughing Guts Out
  • ROFLMAO = Rolling On Floor Laughing My A__ Off!
  • ROFLOL = Rolling On Floor Laughing Out Loud
  • ROTFL = Rolling On The Floor Laughing
  • ROTFLABIC = Rolling On The Floor Laughing And Biting Into Carpet
  • ROTFLOL = Rolling On The Floor Laughing Out Loud
  • RTFAQ = Read The FAQ
  • RTFM = Read The F___ing Manual
  • RX = Regards (Regs)
  • SCNR = Sorry Couldn’t Resist
  • SED = Said Enough Darling
  • SF = Science Fiction
  • SFETE = Smiling From Ear To Ear
  • SMAIM = Send Me An Instant Message
  • SME = Subject Matter Expert
  • SNAFU = Situation Normal, All F___ed Up
  • SNAILMAIL = Postal Mail Service
  • SO = Significant Other (e.g., spouse, boy/girlfriend)
  • SOHF = Sense Of Humor Failure
  • SPAM = Stupid Persons’ Advertisement
  • SSEWBA = Someday Soon, Everything Will Be Acronyms
  • SU = Shut Up
  • SWAG = Scientific Wild A__ Guess
  • SWALK = Sealed With A Loving Kiss
  • TAS = Taking A Shower
  • TFDS = That’s For Darn Sure
  • THANX = Thanks
  • THX = Thanks
  • TIA = Thanks In Advance
  • TIC = Tongue In Cheek
  • TNC = Tongue In Cheek
  • TNX = Thanks
  • TPTB = The Powers That Be
  • TSR = Terminal and Stay Resindent
  • TTFN = Ta Ta For Now
  • TTYL = Talk To You Later
  • TVM = Thanks Very Much
  • TWIMC = To Whom It May Concern
  • TY = Thank You
  • TYVM = Thank You Very Much
  • U = You
  • U2 = You Too?
  • UR = Your
  • VBG = Very Big Grin
  • VBS = Very Big Smile
  • VEG = Very Evil Grin
  • VSF = Very Sad Face
  • W/ = With
  • W/B = Write Back
  • W/O = without
  • WAD = Without A Doubt
  • WB = Welcome Back
  • WBS = Write Back Soon
  • WEG = Wicked Evil Grin
  • WISP = Winning Is So Pleasureable
  • WNOHGB = Were No One Has Gone Before
  • WRT = With Respect To
  • WT = Without Thinking
  • WTG = Way To Go
  • WTH = What The Heck
  • WTTM = Without Thinking To Much
  • WYSIWYG = What You See Is What You Get
  • WYWH = Wish You Were Here
  • XM = Excuse Me
  • XME = Excuuuuse Me
  • XO = Hugs, Kisses
  • Y = Why
  • YMMV = Your Mileage May Vary
  • YTTDSFATCCSH = Yours Till The Desert Sands Freeze And The Camels Come Skating Home
  • YW = You’re Welcome
  • YWIA = You’re Welcome In Advance
  • ZZZ = Sleeping, Bored, Tired

What Was That Error?

You’re happily working along with your computer and suddenly the screen flashes, the computer or application stops, an error message flashes on the screen, and everything comes to a screeching halt and/or your system restarts. But, what was that error?

After the system restarts you may be able to find out by looking in the system Event Log.

Not many people know that events like the above are often captured by the system just before it goes into never-never land. Not only that, but there is an event log viewer located in the Administrative Tools section of the Control Panel…

Event Viewer

Open the Control Panel from the Start Menu. Open the Administrative Tools. There you should see an applet called Event Viewer. Double click on it and it opens to show a number of different event categories (this procedure is the same in Windows XP and Vista). In the left panel pick the category most likely to contain the particular error you encountered. The right panel should then show the recorded events in that category with the latest events at the top of the list.

Note that not all of the events listed are going to be errors; indeed, most will not be. A fair number of different events get recorded by Windows all the time.

When you find an event or error you think is the one you are looking for double click on that entry in the log. An Event Properties dialog box should open and show you the details relating the the event or error.

To be honest there is a good chance you will not understand what you are seeing in the error details (and Computer Knowledge can’t catalog every possible error or event out there!). However, often you can determine the specific program that failed and/or the module that program was using. Sometimes there will be a link in the error message. If you click on the link you will be sending the associated information to Microsoft. A dialog should ask you if you want to do that. If you click on the No button the material won’t be sent however your system may (this does not happen with all systems) open a Help window with some specifics about the particular event/error and maybe even a link to Microsoft Knowledgebase articles relating to that event/error.

Hopefully, with this information, you can come to some resolution of whatever problem you had or are having.


HIBERFIL.SYS AND PAGEFILE.SYS are system-generated files. They are used by Windows for hibernation and virtual memory control.


HIBERFIL.SYS is a file the system creates when the computer goes into hibernation mode. Windows uses the file when it is turned back on. If you don’t need hibernation mode and want to delete the file you need to turn the hibernation option off before Windows will allow you to delete the file. The procedure for turning hibernation off differs markedly between Windows XP and Vista. The file size depends largely on the size of active RAM in the computer as the contents of the file are basically a RAM image.

  • Windows XP

  • Procedure for Windows XP. This procedure makes use of the graphical user interface.
    • Start | Control Panel | Power Options
    • Go to the Hibernate Tab.
    • Uncheck the Enable Hibernation box if you don’t need the hibernation function.
    • The file should now be able to be deleted.
  • How to Troubleshoot Hibernation and Standby Problems in Windows XP. See this Microsoft Knowledgebase article.
  • Windows Vista and Windows 7

  • Procedure for Windows Vista and Windows 7. This procedure requires that you be an administrator and uses the command line.
    • Start | All Programs | Accessories
    • Right click on the Command Prompt entry and choose Run as Administrator from the context menu that pops up (OK any UAC queries about doing this).
    • A Command Prompt window should open.
    • At the command prompt (where the flashing cursor is) type powercfg.exe /hibernate off and press the Enter key.
    • The box should flash and you’ll be back at the Command Prompt; type exit and press the Enter key to exit the Command Prompt mode.
    • Hibernation should now be turned off and the file HIBERFILE.SYS deleted. If you want to turn it back on repeat the procedure and use /hibernate on instead.
    • More Information: Microsoft Support documentWeb Link. A method of doing this using the graphical user interface is available using the Disk Cleanup Wizard. See the writeup hereWeb Link for that if you absolutely refuse to use the command prompt.
  • How to Troubleshoot Hibernation and Standby Problems in Windows Vista. See this Microsoft Knowledgebase article.


PAGEFILE.SYS is the virtual memory file Windows uses. Typically, on install, Windows sets the size of the file at around 1.5 times your physical memory size however this size will vary depending on the amount of free space on the disk when the file is established and other factors. Most will find the default size works fine but it can be changed. Windows uses this file for its normal operation however if you really need the space you can delete it after turning the virtual memory option off but be aware that this can cause extreme instability in Windows to the point where it might stop so do this at your own risk

  • Windows XP

  • Procedure for Windows XP.
    • Start | Right Click on My Computer | Select Properties from the menu
    • Select the Advanced Tab
    • Select Performance Settings
    • Select the Advanced Tab
    • Under virtual memory use the Change button to either set the size you want or turn it completely off. Note that if you turn it off or make the value too small you may notice a system slowdown or Windows may stop. Windows wants to use this file and if it’s set to zero then in addition to a slowdown while running, on system shutdown you may think Windows has hung due to the extra time involved. You may have to experiment a bit if you set it lower than some minimum. The best advice would be to leave the file alone. The Elder GeekWeb Link has a tutorial on the paging file that describes how to change its size in more detail.
  • Windows Vista and Windows 7

  • Procedure for Windows Vista and Windows 7. You must be an administrator to make these changes.
    • Start | Right Click on Computer | Select Properties from the menu
    • Select Advanced System Settings from the left menu.
    • Under Performance click on Settings
    • On the Advanced tab you’ll find the Virtual Memory area. Select the Change button to either set the size you want or turn it completely off. Note that if you turn it off or make the value too small you may notice a system slowdown or Windows may stop. Windows wants to use this file and if it’s set to zero then in addition to a slowdown while running, on system shutdown you may think Windows has hung due to the extra time involved. You may have to experiment a bit if you set it lower than some minimum. The best advice would be to leave the file alone. See the Elder Geek link above for a general discussion of virtual memory and its interaction with Windows.

Comments from the original 5/26/09 posting:

Said this on 2009-08-31 At 09:03 am
Thanks very much for a simple and easy to understand explanation and method…I was wondering about those massive files and now I know I can get rid of hiberfil and not pagefile!!!

Mayson Arnagiri
Said this on 2009-10-06 At 07:33 am
Good Day
The above was done on a Lenovo X61s laptop. Once completed, I tried enabling the hibernation feature when logged as admin.
Once clicking “apply” the tick is dlt of the checkbox.
Can this be a virus infection on the *.sys file?
Might be that a virus linked up with the HIBERFIL.SYS or the PAGEFILE.SYS
Hows about an answer for this.
Said this on 2009-10-06 At 11:04 am
In reply to #5
A virus sounds unlikely but I assume you’ve used anti-virus software to do a scan. Does your admin account require a password to log on? If not that could be the problem. Windows restricts ALL accounts with no password in what the user can do. Also, there is the possibility that you don’t have enough disk space to recreate the hibernate file.
Mayson Arnagiri
Said this on 2009-10-06 At 11:17 pm
Thank you
McAfee was run on machine, nothing was detected
There is enough storage space on the machine due to it having 160 GB Hrd drve.
Can i then delete the hiberfile?
When running on SAFE mode, windows doesnt enable hibernation feature. I thought it was the power manager driver that was at fault, highly unlikely.
In a task, logged with any profile: ticking the “enable hibernation” and then “apply”, this automatically unticks the box again.
This is a tricky one, as its the first of its kind for me.
Said this on 2009-10-06 At 11:27 pm
In reply to #7
As I recall, in SAFE mode Windows has no hibernate mode and so from SAFE mode you should not be able to do anything to it via the graphical interface. I’m not certain what else to suggest so I’ll take the easy way out and refer you to Microsoft. They have an article about troubleshooting hibernation here: http://support.microsoft.com/kb/907477/ (you’ll have to copy/paste as I don’t allow links in the comments). Good luck.

Said this on 2009-11-01 At 01:40 am
The problem with PAGEFILE.SYS on Vista is – even if paging is turned off at all Vista still locking that file and left it without changes. Quite stupid Vista functionality as for me.
And quite stupid that Vista still wants a HUGE pagefile on 4Gb memory.
Thus, seems the only solution is to boot computer from other OS (or from recovery CD) and delete that file manually. 🙁
Said this on 2009-11-01 At 01:28 pm
In reply to #11
If you insist on deleting the file (you really should let Windows have its paging capability) you can try Unlocker to unlock the file in order to delete it…

Said this on 2009-11-01 At 03:59 pm
Could anybody recommend article explaining – WHY(?!) Windows Vista wants pagefile having size equal or greater than size of RAM?! Othewise (if pagefile is smaller) it hanging for 30-40 sec every 2-3 min! :-(((

I can agree with it if RAM size is less than 1-2Gb but I have 4Gb RAM – I belive that must be enough for stable OS work without the huge pagefile!
Perhaps also can agree if there are “heavy” applications running. But it is not the case – there were only Windows Explorer + Outlook + Borland Delphi 7 – nothing also! That has very low memory consumption.

I have tested pagefile size = 200Mb, 512Mb, 1024Mb, 1536Mb – all variants works unstable, computer constantly hanging! :-\

Crazy stuff! I have 4Gb of RAM and that stupid OS cannot work with pagefiles smaller than 3.2Gb! What the ….? Does everybody knows the reason?
Note: question is not to the 3.2Gb size, but – why it wants SUCH BIG pagefile?
Said this on 2009-11-01 At 06:56 pm
In reply to #13
Assuming 32-bit Vista, the OS itself will only use and be capable of addressing about 3.5GB of the 4 you have. The rest may be used for drivers and the like but is not available for general use by the operating system (why most Windows 7 installs are recommended as 64-bit; although that creates a set of problems all its own). Creating a page file at least the same size as memory (if not more) is fairly standard with XP and Vista. Not having one is known to create memory holes as programs bring things into and out of memory for their operation and eventually these holes cause more general problems unless they are managed. The page file system is designed to help with this management.

Why your particular system with those things running slows so much I would consider a mystery as I’m not familiar with the needs of the programs. Perhaps the compiler uses quite a bit and Outlook has never been known to be nice. 🙂

One way to speed up operation with a page file is to put the page file on a different drive than the boot drive so the operating system and page file operation are not competing for the same drive controller and the drive itself therefore does not work as hard. (The Elder Geek article referenced above has details on that.)

Said this on 2010-01-28 At 02:47 pm
This was very informative, TY I looked and saw my HD was almost used up on my laptop. 15gb left of 69.6. This is not possible. i do not have any sw added and very small files. I clicked on c and saw pagefil and hiberfil were big. so i followed the hiberfil delete instructions..ty. But, it now says 17gb left of 69…what is taking up my harddrive. how can i fing out. i deleted programs …again minnute is size. windows vista home premium acer laptop 32 bit ram. ty for help
Said this on 2010-01-28 At 09:44 pm
In reply to #18
Hard to say without looking at the whole disk directory in sorted order but if you have lots and lots of small files keep in mind that each file will take up however many full sectors needed even if the last one of those is almost empty. If the sector size allocated by the FORMAT command is large then each small file will take up that large size even if it’s only a single byte in physical size.

If you have lots of files you don’t use very often consider zipping them together into a ZIP archive that Windows will handle like a folder. That way they are all in a single file with much less wasted space and when needed individual files can be pulled out of the archive, modified, and inserted back into it by dragging and dropping in Windows or by using a ZIP archive program of some sort.

[Added: For file size finding software see: http://lifehacker.com/5146605/free-disk-analyzer-finds-the-largest-space+wasting-files]
Said this on 2010-06-02 At 04:55 pm
In reply to #18
One hidden culprit that uses up disk space is system restore. While it is a useful program and can really help out, it needs to be cleaned up periodically. When doing a disk clean up, be sure to check the other options, one of which is deleting all but the most recent system restore points. If you’ve been running your computer for quite a while, these file stack up and can take an amazing amount of disck space. The total space allowed can also be set by clicking on “My Computer”, going to the sytem restore tab and set a limit from there.

tanuj kumar
Said this on 2010-10-20 At 01:59 pm
tell any software to delect hiberfil.sys and pagefile.sys

[Assume you mean delete and that would be a BAD idea because of the caveats noted in the article. –DaBoss]

Said this on 2011-10-05 At 06:14 am
Thanks , i was trying to delete’em in Linux and i was thinking that they some kind of virus. and i just got into many problems by this.

Said this on 2012-01-18 At 12:50 am
This is just lame. The file does’t get deleted…you get it right back as soon as you turn hibernate on…
How do we actually delete this dump file is the real question.
Any ideas?

[If hibernation is ON then the file will be there because it contains all the information needed to hibernate the computer. If you want the file gone then turn hibernation OFF. You can’t have it both ways. –DaBoss]

What is a File Named Tilde (~) on the Desktop?

A file named with the single tilde character (~) appears on your desktop. What is it and why is it there?

This file started appearing on people’s desktop after the April 2003, Cumulative Patch for Outlook Express (330994) update released by Microsoft. If that update is installed and you take any action that changes the Windows Address Book the tilde file will appear on your desktop.

You could, in the past, find out more about the update itself from the Microsoft page…


…but that link no longer works.

When you change the Address Book, what should happen is that a backup called YOURNAME.WA~ would be created in the directory C:\Windows\Application Data\Microsoft\Address Book. This is a backup to the Address Book named YOURNAME.WAB in that same directory. With the update installed, however, the backup does not get installed into the correct directory and the name gets shortened to just the ending tilde (~) character. This file appears on your Desktop instead of where it should appear.

You have four options to “fix” this:

  • Uninstall the patch. If you do this you may open your computer to the security problems that the patch fixes. And, Windows Update will notice that the patch is not present and, depending on how you have Windows Update configured, may reinstall it automatically or ask you to allow it to reinstall it. You will have to tell Windows Update “no” if you don’t want to continue having the tilde file on your Desktop.
  • Leave the patch installed and simply delete the tilde (~) file every time it appears. If you do this the consequence will be that you don’t have a current backup of your Windows Address Book. Having this backup may or may not be important to you.
  • Leave the patch installed and move/rename the tilde (~) file every time it appears. While this would be the safest option it is also the one that requires the most work. You will have to rename the tilde (~) file to YOURNAME.WA~ (substitute your login name for YOURNAME) and then move the file to the C:\Windows\Application Data\Microsoft\Address Book directory and have it overwrite the file of the same name there.
  • Change the startup directory so the file appears elsewhere. If you right click on the Outlook Express shortcut and choose Properties from the menu you will be presented with a dialog box. One of the entries in the dialog will be “Start In:”. Change that entry to read: C:\Program Files\Outlook Express\ and the tilde file should then be created in that directory instead of on the desktop. You should also change the shortcut in the Start|Programs menu the same way so the tilde files won’t be produced there either. This won’t solve the problem, of course, but it puts the file where you don’t have to be bothered by it and, since you know where it is, can recover it if need be. [Note: This file may be marked read-only. If so, uncheck the read-only box, make the change, click on Apply, and then recheck the read-only box.] (Thanks to a user for a pointer to this tip and another for the read-only part.)

Microsoft is supposed to be aware of the problem and will likely eventually fix it (perhaps in a new version of the program instead of an update).

If you’re not certain, rename the file to TEST.WAB and move it to the indicated directory above. Then double click it and see if the Address Book applet in Windows starts and shows your address book.

Thanks to user Mouse on the FILExt forum for research performed to help answer this question.

What are the Official HTML Color Names and Hex Codes?

HTML colors can be specified in a number of different ways. The most common is to use hexidecimal notation but the HTML specification allows the use of specific names.

Names and numbers are case insensitive. Names are shown here in mixed case and hex numbers in upper case for clarity. You can use any format that meets your specific needs. Note also that use of HTML tags such as FONT has been depreciated. All color specifications on a page should use CSS notation. For example, the SPAN element can be used to specify text in a given color: <span style=”color: #0000ff;”>Example</span> = Example

The following 16 color names are the names that should be common to all browsers. Some early browsers may only respond to these specific names:

  • Black (#000000),
  • Silver (#C0C0C0),
  • Gray (#808080),
  • White (#FFFFFF),
  • Maroon (#800000),
  • Red = (#FF0000),
  • Purple (#800080),
  • Fuchsia (#FF00FF),
  • Green (#008000),
  • Lime (#00FF00),
  • Olive (#808000),
  • Yellow (#FFFF00),
  • Navy (#000080),
  • Blue (#0000FF),
  • Teal (#008080), and
  • Aqua (#00FFFF).

To be safe, you should consider using only the hex notation as all color values from #000000 – #FFFFFF (16,777,216 colors) should be valid. You can see in the table below if your browser works with color names. The last column uses color names instead of hex values so if you see something different from the Sample (third) column then you know your browser does not recognize that particular color name.

The official names and their hex equivalents are shown on this page along with a block example of the color and text in the color shown on both white and black backgrounds. Colors are shown by color name in alphabetical order. The final column tests your particular browser’s display of the color names.

Please also keep in mind that various displays will display colors differently. There is a CKnow article about this which concentrates on CRTs but applies to LCD and Plasma displays also.

Sample Text
on White
on Black
AliceBlue F0F8FF   AaBb..123 AaBb..123  
AntiqueWhite FAEBD7   AaBb..123 AaBb..123  
Aqua 00FFFF   AaBb..123 AaBb..123  
Aquamarine 7FFFD4   AaBb..123 AaBb..123  
Azure F0FFFF   AaBb..123 AaBb..123  
Beige #F5F5DC   AaBb..123 AaBb..123  
Bisque #FFE4C4   AaBb..123 AaBb..123  
Black #000000   AaBb..123 AaBb..123  
BlanchedAlmond #FFEBCD   AaBb..123 AaBb..123  
Blue #0000FF   AaBb..123 AaBb..123  
BlueViolet #8A2BE2   AaBb..123 AaBb..123  
Brown #A52A2A   AaBb..123 AaBb..123  
Burlywood #DEB887   AaBb..123 AaBb..123  
CadetBlue #5F9EA0   AaBb..123 AaBb..123  
Chartreuse #7FFF00   AaBb..123 AaBb..123  
Chocolate #D2691E   AaBb..123 AaBb..123  
Coral #FF7F50   AaBb..123 AaBb..123  
CornflowerBlue #6495ED   AaBb..123 AaBb..123  
Cornsilk #FFF8DC   AaBb..123 AaBb..123  
Crimson #DC143C   AaBb..123 AaBb..123  
Cyan #00FFFF   AaBb..123 AaBb..123  
DarkBlue #00008B   AaBb..123 AaBb..123  
DarkCyan #008B8B   AaBb..123 AaBb..123  
DarkGoldenrod #B8B60B   AaBb..123 AaBb..123  
DarkGray #A9A9A9   AaBb..123 AaBb..123  
DarkGreen #006400   AaBb..123 AaBb..123  
DarkKhaki #BDB76B   AaBb..123 AaBb..123  
DarkMagenta #8B008B   AaBb..123 AaBb..123  
DarkOliveGreen #556B2F   AaBb..123 AaBb..123  
DarkOrange #FF8C00   AaBb..123 AaBb..123  
DarkOrchid #9932CC   AaBb..123 AaBb..123  
DarkRed #8B0000   AaBb..123 AaBb..123  
DarkSalmon #E9967A   AaBb..123 AaBb..123  
DarkSeaGreen #8FBC8F   AaBb..123 AaBb..123  
DarkSlateBlue #483D8B   AaBb..123 AaBb..123  
DarkSlateGray #2F4F4F   AaBb..123 AaBb..123  
DarkTurquoise #00CED1   AaBb..123 AaBb..123  
DarkViolet #9400D3   AaBb..123 AaBb..123  
DeepPink #FF1493   AaBb..123 AaBb..123  
DeepSkyBlue #00BFFF   AaBb..123 AaBb..123  
DimGray #696969   AaBb..123 AaBb..123  
DodgerBlue #1E90FF   AaBb..123 AaBb..123  
FireBrick #B22222   AaBb..123 AaBb..123  
FloralWhite #FFFAF0   AaBb..123 AaBb..123  
ForestGreen #228B22   AaBb..123 AaBb..123  
Fuchsia #FF00FF   AaBb..123 AaBb..123  
Gainsboro #DCDCDC   AaBb..123 AaBb..123  
GhostWhite #F8F8FF   AaBb..123 AaBb..123  
Gold #FFD700   AaBb..123 AaBb..123  
Goldenrod #DAA520   AaBb..123 AaBb..123  
Gray #808080   AaBb..123 AaBb..123  
Green #008000   AaBb..123 AaBb..123  
GreenYellow #ADFF2F   AaBb..123 AaBb..123  
Honeydew #F0FFF0   AaBb..123 AaBb..123  
HotPink #FF69B4   AaBb..123 AaBb..123  
IndianRed #CD5C5C   AaBb..123 AaBb..123  
Indigo #4B0082   AaBb..123 AaBb..123  
Ivory #FFFFF0   AaBb..123 AaBb..123  
Khaki #F0E68C   AaBb..123 AaBb..123  
Lavender #E6E6FA   AaBb..123 AaBb..123  
LavenderBlush #FFF0F5   AaBb..123 AaBb..123  
LawnGreen #7CFC00   AaBb..123 AaBb..123  
LemonChiffon #FFFACD   AaBb..123 AaBb..123  
LightBlue #ADD8E6   AaBb..123 AaBb..123  
LightCoral #F08080   AaBb..123 AaBb..123  
LightCyan #E0FFFF   AaBb..123 AaBb..123  
LightGoldenrodYellow #FAFAD2   AaBb..123 AaBb..123  
LightGreen #90EE90   AaBb..123 AaBb..123  
LightGrey #D3D3D3   AaBb..123 AaBb..123  
LightPink #FFB6C1   AaBb..123 AaBb..123  
LightSalmon #FFA07A   AaBb..123 AaBb..123  
LightSeaGreen #20B2AA   AaBb..123 AaBb..123  
LightSkyBlue #87CEFA   AaBb..123 AaBb..123  
LightSlateGray #778899   AaBb..123 AaBb..123  
LightSteelBlue #B0C4DE   AaBb..123 AaBb..123  
LightYellow #FFFFE0   AaBb..123 AaBb..123  
Lime #00FF00   AaBb..123 AaBb..123  
LimeGreen #32CD32   AaBb..123 AaBb..123  
Linen #FAF0E6   AaBb..123 AaBb..123  
Magenta #FF00FF   AaBb..123 AaBb..123  
Maroon #800000   AaBb..123 AaBb..123  
MediumAquamarine #66CDAA   AaBb..123 AaBb..123  
MediumBlue #0000CD   AaBb..123 AaBb..123  
MediumOrchid #BA55D3   AaBb..123 AaBb..123  
MediumPurple #9370DB   AaBb..123 AaBb..123  
MediumSeaGreen #3CB371   AaBb..123 AaBb..123  
MediumSlateBlue #7B68EE   AaBb..123 AaBb..123  
MediumSpringGreen #00FA9A   AaBb..123 AaBb..123  
MediumTurquoise #48D1CC   AaBb..123 AaBb..123  
MediumVioletRed #C71585   AaBb..123 AaBb..123  
MidnightBlue #191970   AaBb..123 AaBb..123  
MintCream #F5FFFA   AaBb..123 AaBb..123  
MistyRose #FFE4E1   AaBb..123 AaBb..123  
Moccasin #FFE4B5   AaBb..123 AaBb..123  
NavajoWhite #FFDEAD   AaBb..123 AaBb..123  
Navy #000080   AaBb..123 AaBb..123  
OldLace #FDF5E6   AaBb..123 AaBb..123  
Olive #808000   AaBb..123 AaBb..123  
OliveDrab #6B8E23   AaBb..123 AaBb..123  
Orange #FFA500   AaBb..123 AaBb..123  
OrangeRed #FF4500   AaBb..123 AaBb..123  
Orchid #DA70D6   AaBb..123 AaBb..123  
PaleGoldenrod #EEE8AA   AaBb..123 AaBb..123  
PaleGreen #98FB98   AaBb..123 AaBb..123  
PaleTurquoise #AFEEEE   AaBb..123 AaBb..123  
PaleVioletRed #DB7093   AaBb..123 AaBb..123  
PapayaWhip #FFEFD5   AaBb..123 AaBb..123  
PeachPuff #FFDAB9   AaBb..123 AaBb..123  
Peru #CD853F   AaBb..123 AaBb..123  
Pink #FFC0CD   AaBb..123 AaBb..123  
Plum #DDA0DD   AaBb..123 AaBb..123  
PowderBlue #B0E0E6   AaBb..123 AaBb..123  
Purple #800080   AaBb..123 AaBb..123  
Red #FF0000   AaBb..123 AaBb..123  
RosyBrown #BC8F8F   AaBb..123 AaBb..123  
RoyalBlue #4169E1   AaBb..123 AaBb..123  
SaddleBrown #8B4513   AaBb..123 AaBb..123  
Salmon #FA8072   AaBb..123 AaBb..123  
SandyBrown #F4A460   AaBb..123 AaBb..123  
SeaGreen #2E8B57   AaBb..123 AaBb..123  
Seashell #FFF5EE   AaBb..123 AaBb..123  
Sienna #A0522D   AaBb..123 AaBb..123  
Silver #C0C0C0   AaBb..123 AaBb..123  
SkyBlue #87CEED   AaBb..123 AaBb..123  
SlateBlue #6A5ACD   AaBb..123 AaBb..123  
SlateGray #708090   AaBb..123 AaBb..123  
Snow #FFFAFA   AaBb..123 AaBb..123  
SpringGreen #00FF7F   AaBb..123 AaBb..123  
SteelBlue #4682B4   AaBb..123 AaBb..123  
Tan #D2B48C   AaBb..123 AaBb..123  
Teal #008080   AaBb..123 AaBb..123  
Thistle #D8BFD8   AaBb..123 AaBb..123  
Tomato #FF6347   AaBb..123 AaBb..123  
Turquoise #40E0D0   AaBb..123 AaBb..123  
Violet #EE82EE   AaBb..123 AaBb..123  
Wheat #F5DEB3   AaBb..123 AaBb..123  
White #FFFFFF   AaBb..123 AaBb..123  
WhiteSmoke #F5F5F5   AaBb..123 AaBb..123  
Yellow #FFFF00   AaBb..123 AaBb..123  
YellowGreen #A9CD32   AaBb..123 AaBb..123  

What are Cookies?

Some people are concerned that web servers have the power to write to their local hard disk without their knowing about it. The information written is called a “cookie”. This page attempts to address that topic.

What is a Cookie?

The full cookie specification (RFC 2965) can be found at http://tools.ietf.org/html/rfc2965Web Link if you are interested in studying the subject in detail. To simplify, cookies are small bits of information written to your hard disk by a site you visit. The site that writes the information is basically the only site that can retrieve it (some argue that it is possible to “fake” the request and collect information from cookies saved by other sites; they are possibly correct, but this seems to be rare if done at all).

The name “cookie” comes from the UNIX magic cookie which is a name given to packets of information passed between programs. That name is derived from the Chinese fortune cookie where you have information hidden inside a packet.

The purposes of a cookie are twofold:

  • Save information about you to make it easier for you to enter the site in the future.
  • Track your actions (for a variety of reasons that might benefit you or the site manager).

As one simple example, consider a newspaper site with a registration requirement (paid or free, it does not matter). Your logon information might be saved in a cookie so that when you return to the site it can query the cookie and save you the trouble of logging in. Further, if you have specific information requirements these can be coded into a cookie and the site can then automatically present you with stories on the specific topics of interest without bothering to ask you again to enter them on future visits.

How are Cookies Stored?

Cookies are stored in different ways with different browsers and operating systems. On a computer running Windows and a Netscape browser you will find them in a file named COOKIES.TXT in the browser directory. Firefox places an SQLite database of cookies into the browser’s profile folder. A Windows user running Internet Explorer will find them as separate files in the WINDOWS\COOKIES directory. In UNIX they are in a single file in your Netscape directory under the name cookies. Finally, on a Macintosh the file is named MagicCookie and is in the Netscape preferences folder. If you look at a cookie you will see a single line that looks something like:

.infoseek.com TRUE/FALSE 869315463 InfoseekUserId 9CC70E7E5772038797334985D8974560

.netscape.com TRUE/FALSE 946713599 NETSCAPE_ID c65ffb1e,c4750133

The start of the cookie generally has the domain name authorized to access that cookie. The second to last column is the name of the cookie and the last column is the cookie itself. The other information is control information that can define the length of time the cookie is valid and such things as if a secure server connection is necessary before the cookie will be sent.

The specification allows up to 300 total cookies with each being up to 4KB long. There can be up to 20 cookies per server or domain. When these limits are exceeded older cookies (particularly those that have expired) are erased. If there are no expired cookies, then older cookies (expired or not) may be erased.

Cookie Security

Three major concerns are typically raised:

  • “Someone” is writing to your hard drive without your knowing about it.
  • Cookies can be used to “steal” valuable information about you.
  • Cookies can be used to track you (and thus invade your privacy).

While each of these concerns has some validity (depending largely on how you view personal security and privacy) there is little real concern if you take what one might describe as standard precautions.

In the first instance, many programs write to your hard drive without your knowing about it. There are temporary files, cache files, and any number of related files routinely written to your hard disk during any computing session. If you are worried about it, modern browsers have a “notify” option relating to cookies. Check it and the browser will alert you whenever a cookie is supposed to be written to your hard disk. Because of privacy concerns raised by some people expect all future browsers to also have an option that tells them you never want a cookie recorded (or some alternative where you only accept cookies from defined sites or during a specific browser session). Of course, if you don’t record a cookie, if you revisit the site you will have to go through the registration process all over again. This may or may not be convenient for you.

The second instance is usually described in near-hysterical terms that describe how cookies are going to search your hard drive and send all sorts of vital information to some site or another. Bottom line: This is false. The only information a cookie can send to any site is information you have already provided, including any information you sent in a form or locations you have visited on the site in question (or locations you were directly referred to by links from that site). The cookie specification allows no access outside of the cookie file itself. And, if a site wanted to track your activity it could do so on that site; it would not require cookie technology. Cookies just reduce storage space on the server side since the site does not have to allocate storage space for every possible user; each user allocates a little space for the information on their system in the form of a cookie.

The third (track you) has minor potential for problems under some very unique circumstances. Here is a worst case scenario (that would be difficult to implement). Consider a site which stores advertising banners that many other sites draw from. This same site runs contests for other sites. If that site wants to it can:

  • Each time you hit a page with one of those banners on it the storage site checks for cookies it might have sent you in the past and places another. It also records the site you are on plus any info the browser might send (including your current IP address) into its database (at this point all the site knows is the ISP you are logging in from).
  • If you now enter one of that site’s contests all the information you provide as part of the contest rules is also stored in the database. The ad banner storage site now knows who you are, what sites you have visited, and what some of your interests are.
  • Now take your laptop on a trip. If you are using a national ISP your IP address will likely change because national ISPs generally assign the address dynamically when you log in and the address is based on location. So, when you now hit another advertising banner the ad site suspects you are traveling. (In the extreme, knowing personal information and that you are away from home could be used in many ways, but in practice such coordination would be hardly worth the effort. There are many easier ways of determining if you are home or not.)

Another example of cookie use can be seen on many shopping sites (e.g., Amazon.com for one). When you go to Amazon.com as a prior customer the chances are that Amazon.com will put up a page with your name on it. They remember you via cookies set on your prior visit(s).

As with any other information and technology, cookies have their positive and negative sides. If you are careful in what you provide to any site there seems to be minor danger in allowing cookies to be active on your computer. Cookies or not, however, you need to exercise caution with important information (e.g., credit card numbers). Consider carefully to whom you provide this information in any form. And, be aware that more information that you might care to have collected can be collected on you over time via cookies.

More Information

What is a Scan Code?

In the keyboard are little switches. When you press a key one of the switches is activated and when you release that key the switch is activated again. The keyboard makes note of these happenings and stores them in a small buffer (memory area) in the keyboard while it notifies the computer that something has happened at the keyboard (an interrupt). The computer, once notified of keyboard activity reads the buffer and takes the necessary action.

Each key on the keyboard has its own code that it sends when pressed and when released; this is called its scan code. When listing scan codes here we’ll list the “press” scan code. The “release” scan code is that number plus 128 (80 hex).

While the original scan code specification allowed for a single number, newer keyboards with the movement keys repeated in the center of the keyboard forced a change and those keys carry a two-number scan code with the first number always being hex E0 (so programs reading scan codes first test for the E0 character; if not found process the code directly, if found, process the next code as one of the center movement keys).

At first blush the release code may seem redundant but when you think about how often you might press and hold the shift, control, or alt keys down while typing something else it becomes clear why it’s needed.

That said, here are the various scan codes originally defined by IBM (you can see from the layout these were defined for the very first keyboard)…

  • hex 01 = Escape key
  • hex 02 = 1 or ! key
  • hex 03 = 2 or @ key
  • hex 04 = 3 or # key
  • hex 05 = 4 or $ key
  • hex 06 = 5 or % key
  • hex 07 = 6 or ^ key
  • hex 08 = 7 or & key
  • hex 09 = 8 or * key
  • hex 0A = 9 or ( key
  • hex 0B = 0 or ) key
  • hex 0C = – or _ key
  • hex 0D = = or + key
  • hex 0E = Backspace key
  • hex 0F = Tab key
  • hex 10 = q or Q key
  • hex 11 = w or W key
  • hex 12 = e or E key
  • hex 13 = r or R key
  • hex 14 = t or T key
  • hex 15 = y or Y key
  • hex 16 = u or U key
  • hex 17 = i or I key
  • hex 18 = o or O key
  • hex 19 = p or P key
  • hex 1A = [ or { key
  • hex 1B = ] or } key
  • hex 1C = Enter key
  • hex 1D = Control key (Left if two)
  • hex 1E = a or A key
  • hex 1F = s or S key
  • hex 20 = d or D key
  • hex 21 = f or F key
  • hex 22 = g or G key
  • hex 23 = h or H key
  • hex 24 = j or J key
  • hex 25 = k or K key
  • hex 26 = l or L key
  • hex 27 = ; or : key
  • hex 28 = ‘ or ” key
  • hex 29 = ` or ~ key
  • hex 2A = Left shift key
  • hex 2B = \ or | key
  • hex 2C = z or Z key
  • hex 2D = x or X key
  • hex 2E = c or C key
  • hex 2F = v or V key
  • hex 30 = b or B key
  • hex 31 = n or N key
  • hex 32 = m or M key
  • hex 33 = , or < key
  • hex 34 = . or > key
  • hex 35 = / or ? key
  • hex 36 = Right shift key
  • hex 37 = * or PrtScr key
  • hex 38 = Alt key (Left one if two)
  • hex 39 = Space bar
  • hex 3A = Caps Lock key
  • hex 3B = F1 key
  • hex 3C = F2 key
  • hex 3D = F3 key
  • hex 3E = F4 key
  • hex 3F = F5 key
  • hex 40 = F6 key
  • hex 41 = F7 key
  • hex 42 = F8 key
  • hex 43 = F9 key
  • hex 44 = F10 key
  • hex 45 = Num Lock key on numeric keypad
  • hex 46 = Scroll Lock key on numeric keypad
  • hex 47 = 7 or Home key on numeric keypad
  • hex 48 = 8 or Cursor Up key on numeric keypad
  • hex 49 = 9 or Pg Up key on numeric keypad
  • hex 4A = – key on numeric keypad
  • hex 4B = 4 or Cursor Left key on numeric keypad
  • hex 4C = 5 key on numeric keypad
  • hex 4D = 6 or Cursor Right key on numeric keypad
  • hex 4E = + key on numeric keypad
  • hex 4F = 1 or End key on numeric keypad
  • hex 50 = 2 or Cursor Down kay on numeric keypad
  • hex 51 = 3 or Pg Dn key on numeric keypad
  • hex 52 = 0 or Insert key on numeric keypad
  • hex 53 = . or Delete key on numeric keypad
  • hex 54 = Sys Req key (on 84-key keyboard)
  • hex 57 = F11
  • hex 58 = F12
  • hex E1 = Pause key (on 101-key keyboard)

The following scan codes are preceeded by hex E0…

  • hex 1C = Enter key on numeric keypad
  • hex 1D = Control (Right if two)
  • hex 35 = / key on numeric keypad
  • hex 38 = Alt (Right if two)
  • hex 47 = Home
  • hex 48 = Up arrow
  • hex 49 = Pg Up
  • hex 4B = Left arrow
  • hex 4D = Right arrow
  • hex 4F = End
  • hex 50 = Down arrow
  • hex 51 = Pg Dn
  • hex 52 = Insert
  • hex 53 = Delete

While these are generally assigned scan codes, be aware that keyboards come in a wide variety of shapes and sizes and the scan codes from those may differ somewhat from the above.

[Originally published 11/22/2009.] Two of the comments and response are below…

1) What do I do if wanna read an ‘Enter’ key from keyboard in a ‘C’ program.
I want to write a code for the program in which user select some options through arrow keys and then S/he hit the ‘Enter’, then how can I scan the ‘Enter’ key.

2) what is the program to read the arrow keys ? when searched in net i saw a program which using ‘i.h.ah’ &’o.h.ah’ what does they mean and how it works?

Answer: How you read a key depends on the language being used. In C, for example, the function getkey() is typically used. After you get the key then your program has to first determine if the key was a regular keystroke or one of the extended codes that have two parts.

A sample C program to do this is in the answer here…


The i.h.ah referenced is just a variable name that seems to appear in many Google search results including the one at Yahoo! Answers. But that one at least has a useful answer.