Bir Vaka İncelemesi: ASP.NET Core’un Cookie İle İmtihanı

Görsel Kaynağı: http://bit.ly/2tnIaun

Neden .NET Core?

Projenin başlangıç aşamasındaki teknik toplantılarımızda tartıştığımız en temel nokta bu oldu. Şu anda hali hazırda .NET Core ile geliştirilmiş, hurriyet.com.tr projesine hizmet veren bir kaç mikroservisimiz canlıda. Mikroservisleri geliştirirken de bu soruları sormuş ve hemen hemen aynı cevapları ortaya koymuştuk:

  • Hürriyet IT dünyasında hızlı bir open-source teknolojilere yönelim hakim. Çekirdek uygulamalarının tamamına yakını .NET teknolojileri ile geliştirilmiş bir ekip için de bu teknolojiye adaptasyon zor olmadı.
  • Sistem ekibimizin tecrübeleriyle Windows sunuculardan Linux sunuculara doğru bir kavimler göçü yaşıyoruz. Hemen sayabileceğim imaj ve lokasyon uygulamamız, zamanlanmış görevlerin koştuğu sunucularımız şu anda bu ortamda nefes alıyor.
  • Başlangıç aşaması olarak mikro seviyede yazdığımız uygulamaları dockerize ederek yönetiyoruz. Bununla ilgili avantajlar başlı başına bir yazı konusu.
  • Cloud ortamlarda koşan uygulamalarımız da hali hazırda mevcut. Günün birinde bu yazdığımız uygulamaları da rahatlıkla cloud üzerinde servis edilebilir olması üzerine tasarımlar çalışıyoruz.

İmtihan nerede başladı?

Testlerimiz esnasında uygulama bazı tarayıcılarda hiçbir sebep olmaksızın 400 — Bad Request hatası cevabı ile dönmeye başladı.

Bingo!

.NET Core ekibi tarafından geliştirilen açık kaynak kodlu web sunucusu Kestrel’in github reposunda bir issue. İşi açan geliştirici, uygulamanın request header’ları içerisinde ASCII olmayan bir karakter yer aldığı zaman 400 hatası döndüğünü ve controller’a hiç uğramadığından şikayetçi. Tıpkı bizim gibi. Bizim de sildiğimiz zaman çalışan cookie’nin üzerinde taşıdığı değer aşağıdakine benzer:

[{"héllo" : "world"}]

Nginx — Reverse Proxy

Ekrana basılan değerler back-end sunucuya iletilen cookie değerleridir.

--

--

Engineering Manager (at) Hepsiburada. Former trainer & consultant. Tweets are mostly about tech and coding. https://superpeer.com/selcukusta

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Selçuk Usta

Selçuk Usta

Engineering Manager (at) Hepsiburada. Former trainer & consultant. Tweets are mostly about tech and coding. https://superpeer.com/selcukusta