{
    "path": "/home/krm/dev/mimer-academia/web/introduction/Sections/client.sv.json",
    "s": "Ignor",
    "invert": true,
    "level": 1,
    "title": [
        "Webbklient"
    ],
    "author": [
        "krm"
    ],
    "created": {
        "year": 2025,
        "month": 12,
        "day": 2,
        "hour": 0
    },
    "status": "alpha",
    "description": [],
    "statments": [],
    "comment": [],
    "cards": [
        {
            "level": 1,
            "title": [
                "# 👁️‍🗨️ Om webklienter"
            ],
            "description": [
                "Webbklienter är ett mycket vanligt program"
            ],
            "statments": [
                {
                    "description": [
                        "Eftersom det finns så mycket en webbklient skulle kunna vara ger vi bara en kort översikt här."
                    ]
                }
            ],
            "comment": []
        },
        {
            "level": 1,
            "title": [
                "❓ Vad är en webbklient?"
            ],
            "description": [
                "En webbklient är ett program som använder http för att få tag påinfromation ifrån en webbserver."
            ],
            "statments": [
                {
                    "description": [
                        "Det behöver inte vara en webbläsare, dvs. den behöver inte visa upp en html sidan."
                    ]
                },
                {
                    "description": [
                        "Vanligare är att den hämtar information via ett Webb API."
                    ]
                },
                {
                    "description": [
                        "Och får information iform av JSON."
                    ]
                }
            ],
            "comment": []
        },
        {
            "level": 1,
            "title": [
                "Inga begräsningar på webben"
            ],
            "description": [
                "En webbläsare har många begräsningar för att användaren ska vara säker.Det har du inte om du utvecklar en webbklient."
            ],
            "statments": [
                {
                    "description": [
                        "Därför tänk på säkerheten när du utvecklar en webbklient."
                    ]
                },
                {
                    "description": [
                        "Se till att du kontrollerar all data du får för att undvika \"injektionsattacker\""
                    ]
                },
                {
                    "description": [
                        "Tänk på att inte skicka förmånga frågor till server så den blir överblastad."
                    ]
                },
                {
                    "description": [
                        "Med mera."
                    ]
                }
            ],
            "comment": [
                "Å andra sidan tänkt inte för mycket på säkerheten när du skriver någotlitet bara för att lära dig, bara ha i åtanke att det är något du ska\nlära dig så småning om."
            ],
            "cards": [
                {
                    "level": 2,
                    "title": [
                        "Hur implementerar man en webbklient"
                    ],
                    "description": [
                        "Du får hitta en bra bibliotek för ditt favoritspråk. Du kan skapawebbklienter i nästan alla språk, men ofta är det rekomenderar att\nanvända ett tolkat språk."
                    ],
                    "statments": [
                        {
                            "description": [
                                "Python"
                            ]
                        },
                        {
                            "link": "https://docs.python.org/3.0/library/http.client.html",
                            "description": [
                                "http.client"
                            ]
                        },
                        {
                            "link": "http://docs.python-requests.org/en/master/",
                            "description": [
                                "Requests"
                            ]
                        },
                        {
                            "description": [
                                "Node"
                            ]
                        },
                        {
                            "link": "https://nodejs.org/api/http.html#http_class_http_clientrequest",
                            "description": [
                                "http.ClientRequest"
                            ]
                        },
                        {
                            "link": "https://www.npmjs.com/package/request",
                            "description": [
                                "request"
                            ]
                        }
                    ],
                    "comment": [
                        "Det finns många fler, sök och testa några demons!"
                    ]
                }
            ]
        },
        {
            "level": 1,
            "title": [
                "Vad kan en webbklient användas till?"
            ],
            "description": [
                "Till att hämta mycket olika typer av information via webben."
            ],
            "statments": [],
            "comment": []
        },
        {
            "level": 1,
            "title": [
                "Demo på en webbklient"
            ],
            "description": [
                "Detta demo är för node med ",
                [
                    {
                        "form": "important"
                    },
                    "request"
                ],
                " paketet installerat."
            ],
            "lang": "javascript",
            "code": "const request = require('request');\nrequest('http://www.google.com', function (error, response, body) {\n// Print the error if one occurred\nconsole.log('error:', error);\nconsole.log('statusCode:', response && response.statusCode);\n// Print the response status code if a response was received\nconsole.log('body:', body); // Print the HTML for the Google homepage.\n});",
            "statments": [],
            "comment": []
        }
    ],
    "kind": "sections"
}