پروتکل اصلی سیستم پنجره اکس
منابع و شناسه‌ها

همه داده‌های مربوط پنجره‌ها، پیکس‌مپ‌ها، فونت‌ها و ... در سرور ذخیره می‌شوند. کلاینت شناسه این اشیاء را می‌داند. شناسه‌ها، اعداد صحیحی هستند که به یک شی داده می‌شوند و به عنوان نام آن شی بکار برده می‌شوند. کلاینت‌ها از این شناسه‌ها برای تعامل با سرور استفاده می‌کنند. برای نمونه، اگر یک کلاینت بخواهد که پنجره تازه رسم شود، شناسه آن پنجره را، به همراه درخواستی برای ساختن یک پنجره نو، برای سرور می‌فرستد. کلاینت پس از آن می‌تواند این شناسه را بکار برده و برای نمونه، از سرور بخواهد که رشته‌ای متنی را در آن پنجره چاپ کند. اشیاء زیر در سرور قرار دارند و کلاینت آن‌ها را با یک شناسه عددی می‌شناسد:
پنجره
پیکس‌مپ
فونت
رنگ‌نگاشت (جدولی از رنگ‌ها، بعداً تشریح می‌شود)
بافت گرافیکی
این اشیاء، منبع نامیده می‌شوند. هنگامی که کلاینت درخواست ساختن یک چنین منبعی را می‌دهد، شناسه آن را هم مشخص می‌کند. برای نمونه، برای ساختن یک پنجره تازه، کلاینت هم صفات پنجره، همچون پنجره ودر، درازا، پهنا و... را مشخص می‌کند و هم شناسه‌ای که قرار است به آن پنجره داده شود را مشخص می‌کند.
شناسه‌ها اعداد صحیح ۳۲ بیتی هستند که سه بیت پرارزش آن‌ها صفر است. هر کلاینت، مجموعه شناسه‌های ویژه خود را دارد که می‌تواند برای ساختن اشیاء آن‌ها  را بکار برد. این مجموعه به‌دست سرور مشخص می‌شود. سرور این مجموعه شناسه را با جای دادن دو عدد صحیح در بسته پذیرش (همان بسته‌ای که سرور در آغاز کار در پاسخ به کلاینت برای ایجاد اتصال جدید، برای او می‌فرستد) مشخص می‌کند. کلاینت شناسه‌های خود را به گونه‌ای از این مجموعه گزینش می‌کند که برخوردی پیش نیاید: در بین پنجره‌ها، پیکس‌مپ‌ها، فونت‌ها، رنگ‌نگاشت‌ها و بافت‌های گرافیکی، دو شی دارای شناسه یکسانی نباشند.
پس از اینکه یک منبع ساخته شد، کلاینت می‌تواند با شناسه آن منبع، از سرور درخواست کند که کاری را بر روی آن منبع انجام دهد. برخی از درخواست‌ها، بر روی منبع تأثیرگذار هستند و ممکن است آن منبع را دگرگون کنند (برای نمونه، درخواست جابجا کردن یک پنجره)؛ برخی دیگر، اطلاعاتی که دربارهٔ یک منبع در سرور ذخیره شده را درخواست می‌دهند (همچون درخواست برای خصوصیات یک پنجره).
شناسه‌ها نه تنها در کلاینت، بلکه در سرور هم یکتا و منحصربه‌فرد هستند. برای نمونه، دو پنجره گوناگون هیچگاه شناسه یکسانی ندارند، حتی اگر دو کلاینت گوناگون آن‌ها را ساخته باشند. یک کلاینت می‌تواند با دادن شناسه هر شیئی، به آن دسترسی داشته باشد. یک کلاینت می‌تواند به اشیائی که دیگر کلاینت‌ها ساخته‌اند هم دسترسی داشته باشد، حتی اگر شناسه آن شی، بیرون از بازهٔ شناسه‌های آن کلاینت باشد.
در نتیجه، دو کلاینت گوناگون که هر دو به یک سرور متصل هستند، می‌توانند از یک شناسه مشترک برای دسترسی داشتن به یک شی یکسان استفاده کنند. برای نمونه اگر کلاینتی یک شی با شناسه 0x1e00021 ساخته باشد و این عدد 0x1e00021 را به یک برنامه دیگر هم بدهد (این کار می‌تواند به هر شکل دلخواهی انجام شود، همانند ذخیره کردن این عدد در یک فایل به گونه‌ای که برنامه دیگر بتواند آن را از آن فایل بخواند)، برنامه دیگر هم می‌تواند تا بر روی همان پنجره کاری را انجام دهد. برای نمونه، برنامه گوست‌ویو در سامانه پنجره‌ای اکس از این ویژگی اینگونه بهره می‌برد: این برنامه یک زیرپنجره ساخته، سپس شناسه آن را در یک متغیر محیطی می‌گذارد، سپس برنامه گوست‌اسکریپت را فراخوانی می‌کند، سپس برنامه گوست‌اسکریپت، محتوای یک فایل پست‌اسکریپت را در این پنجره نمایش می‌دهد.
معمولاً وقتی که یک کلاینت اتصالش را با سرور قطع می‌کند، منابع به وجود آمده به‌دست آن کلاینت نابود می‌شوند. با این حال، یک کلاینت پیش از پایان دادن به اتصال، می‌تواند از سرور بخواهد که منابع را نابود نکند.