نمایش نتایج 1 تا 3 از 3

نام تاپیک: اشکال در فشرده سازی صفحات با استفاده از gzip

  1. #1
    کاربر دائمی آواتار Kia_MLS
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    یه جای خیلی آروم
    پست
    218

    اشکال در فشرده سازی صفحات با استفاده از gzip

    با سلام
    من در صفحاتم از روش فشرده سازی که آقای راد ارایه دادند استفاده کردم
    اما مشکلی که برای بعضی از کاربرانم بوجو اومده اینه که صفحاتی که با gzip فشرده شده اند لود نمیشن

    طبق بررسی که انجام شد متوجه شدم این دسته از کاربران از اینترت Proxy استفاده میکنند. به عبارتی دیگر کاربرانی که از Nat استفاده میکنند یا Ip valid دارند بدون هیچ مشکلی سایت رو باز میکنند اما کاربران Proxy نمیتونن

    کدی که برای فشرده سازی صفحات استفاده کردم:

    private static bool IsGZipSupported()
    {
    string AcceptEncoding = HttpContext.Current.Request.Headers["Accept-Encoding"];
    if ( (AcceptEncoding != null || AcceptEncoding != "") &&
    AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate")
    )
    return true;
    return false;
    }
    private static void GZipEncodePage()
    {
    if (IsGZipSupported())
    {
    HttpResponse Response = HttpContext.Current.Response;
    string AcceptEncoding = HttpContext.Current.Request.Headers["Accept-Encoding"];

    if (AcceptEncoding.Contains("gzip"))
    {
    Response.Filter = new System.IO.Compression.GZipStream(Response.Filter,
    System.IO.Compression.CompressionMode.Compress);
    Response.AppendHeader("Content-Encoding", "gzip");
    }
    else
    {
    Response.Filter = new System.IO.Compression.DeflateStream(Response.Filte r,
    System.IO.Compression.CompressionMode.Compress);
    Response.AppendHeader("Content-Encoding", "deflate");
    }
    }
    }



    پیشنهاد اساتید محترم برای رفع مشکل این دسته از کاربران چیه؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    123

    نقل قول: اشکال در فشرده سازی صفحات با استفاده از gzip

    واقعا کاری از دست شما ساخته نیست! این کاملا بستگی به نوع پیاده سازی Proxy Server دارد، معمولا Proxy Server هایی که به صورت HTTP Push اطلاعات را از سرور بارگزاری و آنرا برای کلاینت ها ارسال می کنند با Compression و Caching مشکل دارند و این مساله مشکل Proxy است نه برنامه.
    چیزی که عملا اتفاق می افتد به این صورت است:
    - کاربر به Proxy Server درخواست می دهد و به همراه درخواست در HTTP Header ارسال شده، نوع encoding قابل قبول در مرورگر را هم ارسال می کند
    - Proxy Server این درخواست را برای سرور ارسال می کند (در همین نقطه Proxy Server ها می توانند HTTP Header را تغییر دهند به صورتی که encoding برای سرور ارسال نشود).
    - سرور درخواست را دریافت می کند و آنرا به صورت فشرده شده برای Proxy بر می گرداند، در اینجا حالت های متفاوتی ممکن است اتفاق بیفتد، در صورتی که Proxy Server مثلا از روش Push کردن HTTP استفاده کرده باشد در این مرحله در صورتی که Proxy Server امکان extract کردن داشته باشد اطلاعات فشرده شده extract می شود (دقیقا عملکردی که در مرورگر اتفاق می افتد) و در صورتی که Proxy Server این امکان را نداشته باشد اطلاعات به صورت بیت های نامفهوم دریافت می شود! همچنین در صورتی که Proxy Server فقط کار Buffer انجام دهد اطلاعات دست نخورده برای کلاینت ارسال می شود.
    - کلاینت اطلاعات را دریافت می کند و درصورتی که در HTTP Header دریافت شده روش Compression مشخص شده باشد آنرا extract می کند. نکته مهم اینجاست که در صورتی که Proxy Server قبلا عمل extract کردن را انجام داده باشد باید Content-Encoding در Header ارسال شده خالی شده باشد (کاری که خیلی از Proxy ها انجام نمی دهند) همچنین در غیر این صورت نباید Content-Encoding در Header ارسال شده به کلاینت تغییر کند - در صورتی که یکی از این موارد اتفاق بیفتد اطلاعات یا اصلا extract نمی شود و یا 2 بار extract خواهد شد و در این حالت کاربر وبسایت تنها یکسری متون به هم ریخته نامفهوم را مشاهده می کند!

  3. #3
    کاربر دائمی آواتار Kia_MLS
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    یه جای خیلی آروم
    پست
    218

    نقل قول: اشکال در فشرده سازی صفحات با استفاده از gzip

    پس با این توضیحات جناب prankster عملا فشرده سازی صفحات به روش gzip امکان پذیر نیست

    و این اصلا خوب نیست
    آیا راهی وجود داره که تشخیص بدیم کاربری که الان صفحه ما رو درخواست کرده از چه نوع سروری استفاده میکنه؟ و بر اساس پاسخ این سوال تصمیم بگیریم صفحات رو با روش gzip فشرده بکنیم یا خیر؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •