Autor del tema
#0
Cloudflare Worker ile edge üzerinde script çalıştırmak, web uygulamalarınızı daha hızlı ve daha verimli hale getirebilir. Bu süreç, kullanıcılarınıza daha yakın bir deneyim sunmak adına harika bir yol. Peki, bu nasıl mümkün oluyor? Öncelikle, Cloudflare Worker’ların arka planda nasıl çalıştığını anlamak önemli. Aslında, bu sistem, gelen isteklere yanıt vermek için sunucudan uzak bir noktada, yani edge lokasyonlarında script’lerinizi çalıştırmanıza olanak tanıyor. Bu sayede, kullanıcıların coğrafi konumlarından bağımsız olarak, düşük gecikme süreleriyle hizmet sunabilirsiniz.
Çalışmaya başlamak için, Cloudflare hesabınızı oluşturun ve ardından "Workers" sekmesine gidin. Buradan yeni bir worker oluşturduğunuzda, size bir editör ekranı sunulacak. İşte bu noktada JavaScript kullanarak kendi script'inizi yazmaya başlayabilirsiniz. Örneğin, gelen HTTP isteklerini yakalayıp, bunları değiştirmek veya yönlendirmek oldukça kolay. Basit bir örnekle, gelen bir isteği farklı bir URL’ye yönlendirmek istiyorsanız, aşağıdaki gibi bir kod parçası işinizi görecektir:
```javascript
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
return Response.redirect('https://yeni-url.com', 301)
}
```
Bu kadar basit! Ancak, sadece yönlendirme ile sınırlı kalmanıza gerek yok. İsterseniz, isteği işleyerek kullanıcıya özel yanıtlar da oluşturabilirsiniz. Örneğin, kullanıcıdan gelen belirli bir isteği kontrol edip, ona göre farklı içerikler sunmak, kullanıcı deneyimini artırmak için etkili bir yol. Kullanıcıdan gelen "Accept-Language" başlığına göre yanıt döndürebilirsiniz. Örneğin, Türkçe bir içerik sunmak için:
```javascript
async function handleRequest(request) {
const language = request.headers.get('Accept-Language') || 'en';
if (language.startsWith('tr')) {
return new Response('Merhaba, dünyam!');
} else {
return new Response('Hello, world!');
}
}
```
İşte bu tür dinamik yanıtlar, kullanıcıların kendilerini daha özel hissetmesini sağlayabilir. Cloudflare Worker’lar ile verilerinizi cache’lemek de mümkün. Cache, sık kullanılan verileri önbelleğe alarak, her seferinde sunucunuza gitmeden hızlı bir şekilde yanıt vermenizi sağlıyor. Bu, hem hız hem de performans açısından büyük bir avantaj. Örneğin, aşağıdaki kod parçasıyla yanıtlarınızı önbelleğe alabilirsiniz:
```javascript
async function handleRequest(request) {
const cacheKey = new Request(request.url, request);
const cache = caches.default;
let response = await cache.match(cacheKey);
if (!response) {
response = await fetch(request);
response = new Response(response.body, response);
response.headers.append('Cache-Control', 's-maxage=3600');
event.waitUntil(cache.put(cacheKey, response.clone()));
}
return response;
}
```
Bu örnek, yanıtları bir saat boyunca cache’leyerek, her istekte sunucuya gitmeden hızlı bir şekilde yanıt almanızı sağlıyor. Ancak, cache süresi ve yönetimi konusunda dikkatli olmalısınız. Kullanıcılarınızın her zaman güncel bilgilere ulaşmasını istiyorsanız, cache ayarlarını buna göre yapılandırmalısınız. Zaman zaman, cache'lenmiş bilgiler güncel olmayabilir ve bu da kullanıcı deneyimini olumsuz etkileyebilir.
Son olarak, Cloudflare Worker’lar ile güvenlik katmanlarını da artırabilirsiniz. Örneğin, gelen isteklerde belirli IP adreslerini engellemek veya sadece belirli başlıkları kabul etmek gibi işlemleri gerçekleştirebilirsiniz. Bu tür bir güvenlik önlemi, web uygulamanızı daha az saldırıya maruz bırakabilir. Bunun için aşağıdaki gibi bir kontrol yapabilirsiniz:
```javascript
async function handleRequest(request) {
const ipAddress = request.headers.get('CF-Connecting-IP');
if (ipAddress === '123.45.67.89') {
return new Response('Erişim engellendi!', { status: 403 });
}
return new Response('Hoş geldiniz!');
}
```
Cloudflare Worker ile edge üzerinde script çalıştırmanın birçok avantajı var. Geliştirici deneyimini artırması, kullanıcıların daha
Çalışmaya başlamak için, Cloudflare hesabınızı oluşturun ve ardından "Workers" sekmesine gidin. Buradan yeni bir worker oluşturduğunuzda, size bir editör ekranı sunulacak. İşte bu noktada JavaScript kullanarak kendi script'inizi yazmaya başlayabilirsiniz. Örneğin, gelen HTTP isteklerini yakalayıp, bunları değiştirmek veya yönlendirmek oldukça kolay. Basit bir örnekle, gelen bir isteği farklı bir URL’ye yönlendirmek istiyorsanız, aşağıdaki gibi bir kod parçası işinizi görecektir:
```javascript
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
return Response.redirect('https://yeni-url.com', 301)
}
```
Bu kadar basit! Ancak, sadece yönlendirme ile sınırlı kalmanıza gerek yok. İsterseniz, isteği işleyerek kullanıcıya özel yanıtlar da oluşturabilirsiniz. Örneğin, kullanıcıdan gelen belirli bir isteği kontrol edip, ona göre farklı içerikler sunmak, kullanıcı deneyimini artırmak için etkili bir yol. Kullanıcıdan gelen "Accept-Language" başlığına göre yanıt döndürebilirsiniz. Örneğin, Türkçe bir içerik sunmak için:
```javascript
async function handleRequest(request) {
const language = request.headers.get('Accept-Language') || 'en';
if (language.startsWith('tr')) {
return new Response('Merhaba, dünyam!');
} else {
return new Response('Hello, world!');
}
}
```
İşte bu tür dinamik yanıtlar, kullanıcıların kendilerini daha özel hissetmesini sağlayabilir. Cloudflare Worker’lar ile verilerinizi cache’lemek de mümkün. Cache, sık kullanılan verileri önbelleğe alarak, her seferinde sunucunuza gitmeden hızlı bir şekilde yanıt vermenizi sağlıyor. Bu, hem hız hem de performans açısından büyük bir avantaj. Örneğin, aşağıdaki kod parçasıyla yanıtlarınızı önbelleğe alabilirsiniz:
```javascript
async function handleRequest(request) {
const cacheKey = new Request(request.url, request);
const cache = caches.default;
let response = await cache.match(cacheKey);
if (!response) {
response = await fetch(request);
response = new Response(response.body, response);
response.headers.append('Cache-Control', 's-maxage=3600');
event.waitUntil(cache.put(cacheKey, response.clone()));
}
return response;
}
```
Bu örnek, yanıtları bir saat boyunca cache’leyerek, her istekte sunucuya gitmeden hızlı bir şekilde yanıt almanızı sağlıyor. Ancak, cache süresi ve yönetimi konusunda dikkatli olmalısınız. Kullanıcılarınızın her zaman güncel bilgilere ulaşmasını istiyorsanız, cache ayarlarını buna göre yapılandırmalısınız. Zaman zaman, cache'lenmiş bilgiler güncel olmayabilir ve bu da kullanıcı deneyimini olumsuz etkileyebilir.
Son olarak, Cloudflare Worker’lar ile güvenlik katmanlarını da artırabilirsiniz. Örneğin, gelen isteklerde belirli IP adreslerini engellemek veya sadece belirli başlıkları kabul etmek gibi işlemleri gerçekleştirebilirsiniz. Bu tür bir güvenlik önlemi, web uygulamanızı daha az saldırıya maruz bırakabilir. Bunun için aşağıdaki gibi bir kontrol yapabilirsiniz:
```javascript
async function handleRequest(request) {
const ipAddress = request.headers.get('CF-Connecting-IP');
if (ipAddress === '123.45.67.89') {
return new Response('Erişim engellendi!', { status: 403 });
}
return new Response('Hoş geldiniz!');
}
```
Cloudflare Worker ile edge üzerinde script çalıştırmanın birçok avantajı var. Geliştirici deneyimini artırması, kullanıcıların daha