Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / ARTIFACT LAB

Bir kaydın ne söylediğini bul.

HTTP öğretim metni, URL, Cookie, Set-Cookie ve JSON alanlarını incele. Kaydı düzenle, ayrıştır ve bir alan seç; metin bu tarayıcıda veri olarak işlenir.

Bir kaydı alanlarından oku.

HTTP, URL, Cookie veya JSON kaydında hangi alanın ne söylediğini bul.

  1. Örneği seç

    İncelenen örnek listesinden HTTP response veya URL gibi bir kayıt seç. İlk ayrıştırmada çıkan alan adlarını ve değerlerini oku.

  2. Bir alanın anlamını aç

    Bir alan düğmesine bas; değerini, kayıttaki yolunu ve açıklamasını birlikte incele. Sonraki alanlar ile kaydın kalanına geç.

  3. Değişikliği karşılaştır

    Ham metni düzenle bölümünü aç; örneğin URL query değerini değiştir ve Metni ayrıştır’a bas. Önceki değerle karşılaştır; Örneğe dön ile ilk kaydı geri getir.

Bir alanın kayıtta bulunması ile o alanın bir sistem davranışını kanıtlamasını ayırırsın; değiştirdiğin metnin hangi alanı değiştirdiğini gösterebilirsin.

ÖRNEĞİ BİRLİKTE OKUYALIM

İki HTTP sonucu ve local işlem izi

Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.

Ham kaydı ve alan açıklamalarını oku
{
  "representation": "HTTP/1.1 teaching text, CRLF-delimited; selected headers only",
  "storageTransport": "in-process-call, seeded memory",
  "exchanges": [
    {
      "case": "found",
      "requestId": "demo-book-found",
      "request": "GET /api/book?case=found HTTP/1.1\r\nHost: 127.0.0.1:4175\r\nAccept: application/json\r\n\r\n",
      "response": "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nContent-Length: 53\r\nCache-Control: no-store\r\nX-Lab-Request-Id: demo-book-found\r\n\r\n{\"book\":{\"id\":\"book-atlas\",\"title\":\"Atlas Notları\"}}",
      "bodyUtf8Bytes": 53,
      "trace": [
        {
          "seq": 1,
          "actor": "handler",
          "event": "request-received",
          "requestId": "demo-book-found"
        },
        {
          "seq": 2,
          "actor": "handler",
          "event": "route-selected",
          "route": "/api/book"
        },
        {
          "seq": 3,
          "actor": "storage-adapter",
          "event": "local-lookup",
          "transport": "in-process-call"
        },
        {
          "seq": 4,
          "actor": "storage-adapter",
          "event": "record-found"
        },
        {
          "seq": 5,
          "actor": "handler",
          "event": "response-created",
          "status": 200
        }
      ],
      "browserExpected": {
        "fetch": "fulfilled-with-Response",
        "status": 200,
        "ok": true,
        "body": "await response.json()",
        "view": "book-title"
      }
    },
    {
      "case": "missing",
      "requestId": "demo-book-missing",
      "request": "GET /api/book?case=missing HTTP/1.1\r\nHost: 127.0.0.1:4175\r\nAccept: application/json\r\n\r\n",
      "response": "HTTP/1.1 404 Not Found\r\nContent-Type: application/json\r\nContent-Length: 26\r\nCache-Control: no-store\r\nX-Lab-Request-Id: demo-book-missing\r\n\r\n{\"error\":\"BOOK_NOT_FOUND\"}",
      "bodyUtf8Bytes": 26,
      "trace": [
        {
          "seq": 1,
          "actor": "handler",
          "event": "request-received",
          "requestId": "demo-book-missing"
        },
        {
          "seq": 2,
          "actor": "handler",
          "event": "route-selected",
          "route": "/api/book"
        },
        {
          "seq": 3,
          "actor": "storage-adapter",
          "event": "local-lookup",
          "transport": "in-process-call"
        },
        {
          "seq": 4,
          "actor": "storage-adapter",
          "event": "record-missing"
        },
        {
          "seq": 5,
          "actor": "handler",
          "event": "response-created",
          "status": 404
        }
      ],
      "browserExpected": {
        "fetch": "fulfilled-with-Response",
        "status": 404,
        "ok": false,
        "body": "await response.json()",
        "view": "not-found-message"
      }
    }
  ]
}
request / response
HTTP/1.1 öğretim gösterimi; DevTools raw capture değil. Headers/body boş CRLF satırıyla ayrılır.
Content-Length / bodyUtf8Bytes
Body octet sayısı; compression uygulanmaz. Unicode karakter sayısından farklı olabilir.
X-Lab-Request-Id / requestId
Bu örneğin özel correlation alanı; HTTP standardı değil.
trace[].actor / event / transport
Server-side processing ve local storage adapter çağrısı; network protocol kaydı değil.
browserExpected
HTTP Response, body read ve view için beklenen ayrı sonuçlar.

Sentetik selected-header gösterimi; tam RFC-compliant server transcript veya lab output iddiası yok. Tarih/diğer browser headers’ı atlanır. HTTP/2–3 framing, streaming packetization, DNS/TLS ve real persistence modellenmez. Header’ın adı gerçek lab uygulamasında farklıysa o uygulamanın sözleşmesi esas alınır.

URL · path, query ve fragment

https://books.example:8443/catalog/atlas?lang=tr&tag=network&tag=web#summary
host
Host, açık port ile books.example:8443 olur. Hostname ise books.example olarak kalır.
origin
HTTP(S) origin scheme, hostname ve etkin port’tan oluşur; path veya query bu sınırı değiştirmez.
tag
Query aynı tag adını iki kez içerir. İki alan da korunur; tek bir get sonucu bütün değerleri temsil etmez.
hash
Fragment #summary URL’de bulunur; HTTP request target’ına eklenmez.
httpOriginForm
Path ve query birlikte gösterilir. Fragment’in bu değerde bulunmamasını karşılaştır.

Sentetik öğretim metni. Ayrıştırma URL alanlarını veya cookie çiftlerini gösterir; browser policy, storage ya da server session sonucunu üretmez.

Cookie · request’te gönderilen çiftler

hd_language=tr; hd_view=compact
hd_language
Gönderilen dil tercihi. Bu name/value çifti kimlik veya kitap erişim izni değildir.
hd_view
İkinci preference çifti. Request Cookie metni Path, HttpOnly veya SameSite attribute’larını geri taşımaz.

Sentetik öğretim metni. Ayrıştırma URL alanlarını veya cookie çiftlerini gösterir; browser policy, storage ya da server session sonucunu üretmez.

Set-Cookie · response’taki tercih ve scope

hd_language=tr; Path=/
hd_language
Response yeni bir dil tercihi önerir. Metni okumak browser’ın bunu kabul edip sakladığını kanıtlamaz.
Path
Request path eşleşmesi için scope attribute’ı. Request Cookie çiftlerine dahil edilmez; güvenlik izolasyonu sağlamaz.

Sentetik öğretim metni. Ayrıştırma URL alanlarını veya cookie çiftlerini gösterir; browser policy, storage ya da server session sonucunu üretmez.