آموزش بهینه سازی تعیین کردن مجموعه کاراکتر ها

Specify a character set early

Overview

Specifying a character set in the HTTP response headers of your HTML documents allows the browser to begin parsing HTML and executing scripts immediately.

بررسی اجمالی تعیین کردن مجموعه کاراکتر ها

تعیین مجموعه کاراکتر  در HTTP Header صفحات سایت شما اجازه می دهد برای تجزیه بهتر فایل‌های HTML و اجرای بلافاصله اسکریپتها .

What is a character set definition?

A character set is essentially a set of characters represented by numbers for a computer. For example in the ASCII character set the numbers 0-127 are used to represent all English characters as well as special control characters.

تعیین کردن کاراکتر چیست؟

یک کاراکتر  اساسا یکی از مجموعه‌های ارائه شده عددی برای یک کامپیوتراست.برای مثال در ASCII کاراکتر ها تعیین شدن بین اعداد 0 تا 127 و استفاده می شود همه کاراکترهای زبان انگلیسی و کاراکترهای کنترلی ویژه.

Why is it important?

It’s important to specify a character set in the HTTP response headers of your HTML documents to allow the browser to begin parsing HTML and executing scripts immediately.
Without specifying a character set the browser is left to figure it out on its own which takes time and therefore negatively impacts your page load times.

چرا تعیین مجموعه کاراکتر ها مهم است؟

به این دلیل مهم است چون با تعیین مجموعه کاراکتر ها در هدر HTTP صفحات سایت  شما به مرورگر اجازه خواهید داد که شروع به تجزیه و تحلیل HTML کند و اسکریپت ها را اجرا کند.
بدون تعیین مجموعه کاراکتر ها مرورگر شروع به تشخیص مجموعه کاراکتر خواهد کرد و این عمل باعث اتلاف وقت خواهد شد و درنتیجه تاثیر منفی در بارگذاری سایت خواهد داشت.

Details

HTML documents are sent over the Internet as a sequence of bytes accompanied by character encoding information. Character encoding information is specified in the HTTP response headers sent with the document, or in the HTML markup of the document itself. The browser uses the character encoding information to convert the stream of bytes into characters that it renders on-screen. Because a browser cannot correctly render a page without knowing how to construct the page’s characters, most browsers buffer a certain number of bytes before executing any JavaScript or drawing the page, while they search for character set information in the input. (A notable exception is Internet Explorer versions 6, 7, and 8.)
Browsers differ with the respect to the number of bytes buffered and the default encoding assumed if no character set is found. However, once they have buffered the requisite number of bytes and begun to render the page, if they encounter a character set specification that doesn’t match their default, they need to reparse the input and redraw the page. Sometimes, they may even have to rerequest resources, if the mismatch affects the URLs of external resources.
To avoid these delays, you should always specify the character encoding  in the HTTP response headers. Note that, while it is possible to specify a character set using a meta http-equiv tag, doing so disables the lookahead downloader in Internet Explorer 8. Disabling the lookahead downloader can substantially increase the amount of time it takes to load your page. Microsoft notes: “we continue to strongly recommend that web developers specify the CHARSET in the HTTP Content-Type response header, as this ensures that the performance benefit of the Lookahead Downloader is realized”.

جزئیات تعیین مجموعه کاراکتر ها

فایل‌های HTML به عنوان دنباله ای (مجموعه ای مرتب شده) از بایت همراه با اطلاعات مربوط به کاراکتر را پشتیبانی می کند و روی اینترنت فرستاده می شود.نحوه رمزگذاری کاراکتر ها  از هدر HTTP  که همراه با فایل HTML ارسال می شود و یا در اجزای خود فایل HTML مشخص می شود.مرورگر با استفاده از نحوه رمزگذاری کاراکتر ها بایت‌های درون فایل HTML را قابل مشاهده می کند و آنرا بر روی صفحه نمایش نشان خواهد داد.از آنجا که مرورگر بدون اینکه بداند نحوه ایجاد کاراکتر ها  می تواند به درستی رندر (قابل نمایش ) کند صفحه را ، اغلب مرورگر ها در بافر خود کدهای (عددهای) خاص بایت‌هایی دارند و از این کدهای خاص استفاده می کنند قبل از اجرای جاوا اسکریپت ها و قبل از ترسیم نمودن صفحه سایت و این کدهای خاص بیشتر برای پیدا کردن نحوه رمزگذاری استفاده می شود. ( مرورگرهای مستثنا: اکسپلورر 6و7و8 )
مرورگر ها با توجه به تعداد بایت‌های بافر شده نحوه رمز گذاری پیش فرضی را انتخاب می کنند اگر نحوه رمزگذاری کراکتر ها مشخص  نشده باشد.با این حال، صفحه را با رندر می کند اگر کاراکترهایی با رمز گذاری پیش فرض انتخاب شده مرورگر مطابقت نداشته باشد مجبور به تجزیه و ترسیم دوباره صفحه می شود تا بتواند نحوه رمزگذاری را پیدا کند.گاهی اوقات مرورگر ممکن است نیاز به درخواست دوباره منابع داشته باشد.
برای جلوگیری از این اتلاف وقت ، شما بهتر است نحوه رمز گذاری را در هدر HTTP مشخص کنید.توجه داشته باشید که ، در حالی که این امکان وجود دارد برای مشخص کردن نحوه رمز گذاری کاراکترها با استفاده از دستور meta http-equiv ( همان <meta http-equiv=”content-typecontent=”text/html; charset=UTF-8″> ) این کار باعث غیرفعال شدن lookahead downloader در اینترنت اکسپلورر 8 خواهد شد. غیر فعال کردن lookahead downloader می تواند سرعت بارگذاری سایت شما را به میزان قابل توجهی بهبود دهد. نوشته مایکروسافت در این زمینه :” ما همچنان به شدت به توسعه دهندگان وب توصیه می کنیم که CHARSET را در هدر HTTP تعیین کنند ، این کار عملکرد بهتر Lookahead Downloader را تضمین می کند و محقق میسازد”. (برای مفهوم بهتره به متن انگلیسی توجه شود)

Why should you avoid setting it in the meta http-equiv tag?

Setting the character set in the meta http-equiv tag disables the lookahead downloader in Internet Explorer 8. Disabling the lookahead downloader can substantially increase the amount of time it takes to load your page.
Web developers should specify the CHARSET in the HTTP Content-Type response header, as this ensures that the performance benefit of the Lookahead Downloader is realized.

چرا بهتره که شما اجتناب کنید از گذاشتن نحوه رمز گذاری در تگ meta http-equiv

تعیین نحوه رمز گذاری در تگ meta http-equiv غیرفعال است در lookahead downloader اکسپلورر 8.
غیر فعال بودن تگ در lookahead downloader می تواند زمان بارگذاری سایت شما را به میزان قابل توجهی افزایش (کندتر) کند.
توسعه دهنده‌های وب بهتر است CHARSET را در هدر HTTP مشخص کنند، اینکار عملکرد بهتر سایت را تضمین می کند.

Recommendations

Always specify a content type.

Before browsers can begin to check for a character set, they must first determine the content type of the document being processed. If this is not specified in the HTTP header or the HTML meta tag, they will attempt to “sniff” the type, using various algorithms. This process can cause additional delays, besides representing a security vulnerability. For both performance and security reasons, you should always specify a content type for all resources (not only text/html).

Be sure to specify the correct character encoding.

It’s important that the character set you specify in an HTTP header or HTML meta tag match the character encoding actually used to author your HTML documents. If you specify a charset parameter in both the HTTP header and HTML meta tag, make sure they match each other. If the browser detects an incorrect or mismatched encoding, it will render the page incorrectly and/or incur additional delays while it redraws the page. For more information on valid character sets, see Section 5.2, Character Encodings in the HTML 4.01 Specification.

پیشنهاد ما به شما

همیشه یک نوع محتوا بکار ببرید.

قبل از مروگر ها می توانید مجموعه کاراکتر ها را بررسی کنید، آنها (مرورگرها) ابتدا باید نوع محتوای سند را پردازش و تعیین کنند.اگر نوع محتوا در هدر HTTP و یا در متا تگ‌های HTML تعیین نشده باشد ، مرورگر ها باید “sniff” (بوکشیدن) کنند نوع محتوا را با استفاده از الگوریتم‌های مختلف.این فرآیند می تواند باعث تاخیر اضافی در بارگذاری سایت شود،علاوه بر این نشان دهنده یک آسیب پذیری امنیتی هم هست.برای هر دو نوع دلیل ( سرعت و بازدهی سایت و مسائل امنیتی ) ، شما بهتر است همیشه یک نوع محتوا برای تمام منابع سایت استفاده کنید. (نه تنها text/html )

مطمئن شوید نحوه رمزگذاری را بدرستی تعیین کرده اید.

مهمه که نحوه رمزگذاری تعیین شده شما در هدر HTTP و یا متا تگ HTML با نحوه رمز بندی شدن واقعی استفاده شدن در فایل‌های HTML یکسان باشند.اگر شما هم در هدر HTTP و هم در متا تگ HTML نحوه رمزگذاری را تعیین می کنید، مطمئن شوید که هر دو یک نوع نحوه رمزگذاری تعیین شده اند. اگر مرورگر نحوه رمزگذاری را درست تشخیص ندهد و یا از نحوه رمز گذاری پشتیبانی نکند، رندر سایت به مشکل بر خواهد خورد و یا باعث تاخیر در ترسیم ظاهر شکل سایت خواهد شد.

How to do it?

In order to avoid using meta tags you must set the Character Set from the Server.
This is the most efficient method to set the character set, because you don’t need to set it for every page. Set your server to send a Content-Type header for all documents it serves that are of type text/html. For example:

Content-Type: text/html; charset=UTF-8

Charset is where you set your character type.

چگونه بایدآن را انجام داد؟

بدلیل جلوگیری از استفاده تگ متا شما باید نحوه کد بندی را از طرف سرور تنظیم کنید.
این کارآمد ترین روش برای تنظیم مجموعه کاراکتر است، چرا که شما لازم نیست که آن را برای هر صفحه را تنظیم کنید.
سرور خود را طوری تنظیم کنید که نوع محتوا را برای همه صفحات (اسناد) سایت ارسال کند.این خدمات برای نوع text/html هست. برای مثال:

Content-Type: text/html; charset=UTF-8

منابع:

https://developers.google.com/speed/docs/best-practices/rendering#SpecifyCharsetEarly
http://gtmetrix.com/specify-a-character-set-early.html

درصورت داشتن سوال از بخش دیدگاه ها بپرسید
درصورتی که سایت شما همچین مشکلی دارد می توانید رفع کردن این مشکل را به تیم سئو قالبفا بسپارید
سئو سایت با تیم سئو قالبفا!

آموزش بهینه سازی تعیین کردن مجموعه کاراکتر ها 5.00/5 - 5

نوشته شده توسط تیم سئو قالبفا در تاریخ 26 فوریه 2013 دسته : آموزش بهینه سازی سرعت سایت