[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Fgo-stdlib-http":4,"config":254},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":148,"samples":168},"backend","Backend","","go-stdlib-http","Go Stdlib Http","en",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145],{"key":19,"name":20,"count":11},"api-design","API Design",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Concurrency",{"key":28,"name":29,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":31,"name":32,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":34,"name":35,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":37,"name":38,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":40,"name":41,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":43,"name":44,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":46,"name":47,"count":11},"databases-sql","Databases \u002F SQL",{"key":49,"name":50,"count":11},"go-concurrency","Go Concurrency",{"key":52,"name":53,"count":11},"go-errors","Go Errors",{"key":55,"name":56,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":58,"name":59,"count":11},"go-memory-performance","Go Memory Performance",{"key":8,"name":9,"count":11},{"key":62,"name":63,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":11},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":11},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":74,"name":75,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":11},"messaging-queues","Messaging \u002F Queues",{"key":86,"name":87,"count":11},"networking-http","Networking \u002F HTTP",{"key":89,"name":90,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":11},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":11},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":11},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":11},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":11},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":11},"security","Security",{"key":146,"name":147,"count":11},"testing","Testing",[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,201,215,228,241],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":175,"explanation":186},"019f5b0c-5b67-7289-bbee-2f82a5c8cb42",1,"In net\u002Fhttp, http.HandlerFunc is a defined function type. Which statement about it is correct?",[174,177,180,183],{"key":175,"text":176},"a","It adapts any func(http.ResponseWriter, *http.Request) into an http.Handler via a ServeHTTP method",{"key":178,"text":179},"b","It requires the wrapped function to also implement Read and Write methods",{"key":181,"text":182},"c","It only works for functions that return an error value",{"key":184,"text":185},"d","It automatically registers the function with the default ServeMux","http.HandlerFunc(f) is a type with a ServeHTTP method that just calls f(w, r); it's the standard adapter for turning a plain function into an http.Handler. It does not require Read\u002FWrite, does not require an error return, and does not register anything by itself — http.HandleFunc or mux.HandleFunc does the registering.",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":178,"explanation":200},"019f5b0c-5b68-777b-ba7f-1b48e59388b4",3,"On a classic http.ServeMux (patterns without HTTP methods, pre-1.22 style), you register mux.HandleFunc(\"\u002Fusers\", usersHandler) and mux.HandleFunc(\"\u002F\", rootHandler). A request arrives for path \"\u002Fusers\u002F42\". Which handler runs?",[192,194,196,198],{"key":175,"text":193},"usersHandler runs, matching \"\u002Fusers\" as a prefix",{"key":178,"text":195},"rootHandler runs, via the \"\u002F\" catch-all pattern",{"key":181,"text":197},"Neither handler runs; ServeMux returns 404",{"key":184,"text":199},"usersHandler runs, via the longest matching pattern","Classic ServeMux rules: a pattern ending in \"\u002F\" is a subtree match covering everything under it, while a pattern without the trailing slash matches that exact path only. \"\u002Fusers\" has no trailing slash, so it does not match \"\u002Fusers\u002F42\"; the request falls back to the registered \"\u002F\" pattern, which matches any path not matched more specifically.",{"id":202,"topic":9,"difficulty":203,"body":204,"options":205,"correct_key":181,"explanation":214},"019f5b0c-5b69-7595-aa5d-826b2443ac77",2,"```go\nfunc handler(w http.ResponseWriter, r *http.Request) {\n    w.Write([]byte(\"hello\"))\n    w.WriteHeader(http.StatusTeapot)\n}\n```\nWhat status code does the client actually receive?",[206,208,210,212],{"key":175,"text":207},"418 I'm a Teapot",{"key":178,"text":209},"500 Internal Server Error",{"key":181,"text":211},"200 OK",{"key":184,"text":213},"No response is sent; the connection closes without a status line","If a handler calls Write before ever calling WriteHeader, net\u002Fhttp sends an implicit WriteHeader(http.StatusOK) first. Once the header section is written, further calls to WriteHeader are ignored (with a warning logged), so the client sees 200 OK regardless of the later w.WriteHeader(http.StatusTeapot) call.",{"id":216,"topic":9,"difficulty":203,"body":217,"options":218,"correct_key":184,"explanation":227},"019f5b0c-5b6a-75c8-8ae2-6129a9427169","```go\nfunc handler(w http.ResponseWriter, r *http.Request) {\n    w.WriteHeader(http.StatusOK)\n    w.Header().Set(\"X-Custom\", \"value\")\n}\n```\nWill the client receive the X-Custom header?",[219,221,223,225],{"key":175,"text":220},"Yes, at any point during the handler",{"key":178,"text":222},"Yes, but only if the body is left empty",{"key":181,"text":224},"No, only because \"X-Custom\" starts with an uppercase letter",{"key":184,"text":226},"No, the header section was already sent","w.Header() returns the map that backs the response headers, but it is only read and sent when WriteHeader (or the first Write) actually flushes headers to the wire. Any Header().Set call after that point mutates a map that is no longer consulted, so the change is silently dropped.",{"id":229,"topic":9,"difficulty":203,"body":230,"options":231,"correct_key":175,"explanation":240},"019f5b0c-5b6b-714c-be6a-bf594e814386","After an http.HandlerFunc returns, is it the handler's responsibility to explicitly call r.Body.Close()?",[232,234,236,238],{"key":175,"text":233},"No, the net\u002Fhttp server always closes it",{"key":178,"text":235},"Yes, otherwise the TCP connection is never released",{"key":181,"text":237},"Yes, otherwise json.NewDecoder will panic next time",{"key":184,"text":239},"No, but only for GET requests without a body","net\u002Fhttp guarantees that the Server closes the request body once the handler function returns, whether or not the handler itself read it. Calling r.Body.Close() explicitly is harmless and sometimes done for clarity, but it's not required to avoid a resource leak in the standard server.",{"id":242,"topic":9,"difficulty":203,"body":243,"options":244,"correct_key":178,"explanation":253},"019f5b0c-5b6b-7a16-99b6-e2930b785b84","```go\ntype payload struct {\n    Name string `json:\"name\"`\n    age  int    `json:\"age\"`\n}\nvar p payload\njson.NewDecoder(r.Body).Decode(&p)\n```\nGiven request body {\"name\":\"Ali\",\"age\":30}, what is p.age after Decode?",[245,247,249,251],{"key":175,"text":246},"30, since the json tag makes the field addressable",{"key":178,"text":248},"0, its zero value",{"key":181,"text":250},"Decode returns an error",{"key":184,"text":252},"30, but only because the struct was passed by pointer","encoding\u002Fjson uses reflection, which cannot set unexported struct fields from outside the package. The `age` field is lowercase (unexported), so Decode silently skips it — no error, but also no assignment — leaving p.age at its zero value 0.",{"fields":255,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[256,267,287,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":257},[258,261,262,263,264,265,266],{"key":259,"name":260,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":268,"name_tr":269,"name_en":269,"sort":203,"specializations":270},"frontend","Frontend",[271,272,275,278,281,284],{"key":259,"name":260,"field":268},{"key":273,"name":274,"field":268},"javascript","JavaScript",{"key":276,"name":277,"field":268},"typescript","TypeScript",{"key":279,"name":280,"field":268},"react","React",{"key":282,"name":283,"field":268},"vue","Vue",{"key":285,"name":286,"field":268},"angular","Angular",{"key":288,"name_tr":289,"name_en":289,"sort":189,"specializations":290},"fullstack","Fullstack",[291,292,293,294,295,296,297,298,299,300,301,302],{"key":259,"name":260,"field":288},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":273,"name":274,"field":268},{"key":276,"name":277,"field":268},{"key":279,"name":280,"field":268},{"key":282,"name":283,"field":268},{"key":285,"name":286,"field":268},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":259,"name":260,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":259,"name":260,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":259,"name":260,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":259,"name":260,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":143,"name_tr":379,"name_en":144,"sort":380,"specializations":381},"Güvenlik",8,[382,383,386,389,392,395],{"key":259,"name":260,"field":143},{"key":384,"name":385,"field":143},"appsec","AppSec",{"key":387,"name":388,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":143},"cloud-security","Cloud Security",{"key":393,"name":394,"field":143},"devsecops","DevSecOps",{"key":396,"name":397,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":259,"name":260,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":259,"name":260,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":259,"name":260,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":259,"name":260,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[431,10],"tr",[433,434],"google","github",21750,true]