Код IT Загрузка примера кода…

JavaScript main.js
const http = require('http');
const https = require('https');
const { URL } = require('url');

function parseAndCheckUrl(targetUrl) {
    return new Promise((resolve, reject) => {
        let parsedUrl;

        try {
            parsedUrl = new URL(targetUrl);
        } catch (e) {
            reject(new Error('Некорректный формат URL'));
            return;
        }

        const protocol = parsedUrl.protocol === 'https:' ? https : http;
        const options = {
            hostname: parsedUrl.hostname,
            port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
            path: parsedUrl.pathname,
            method: 'HEAD', // Используем HEAD для экономии ресурсов
            timeout: 5000
        };

        const req = protocol.request(options, (res) => {
            resolve({
                url: targetUrl,
                status: res.statusCode,
                headers: res.headers,
                valid: res.statusCode >= 200 && res.statusCode < 400
            });
        });

        req.on('error', (e) => {
            resolve({
                url: targetUrl,
                status: null,
                error: e.message,
                valid: false
            });
        });

        req.on('timeout', () => {
            req.destroy();
            resolve({
                url: targetUrl,
                status: null,
                error: 'Таймаут запроса',
                valid: false
            });
        });

        req.end();
    });
}

async function main() {
    const testUrls = [
        'https://example.com',
        'http://invalid-domain-xyz.com',
        'not-a-url'
    ];

    for (const url of testUrls) {
        try {
            const result = await parseAndCheckUrl(url);
            console.log(`URL: ${result.url}`);
            console.log(`Статус: ${result.status || 'Ошибка'}`);
            console.log(`Доступен: ${result.valid ? 'Да' : 'Нет'}`);
            if (result.error) console.log(`Ошибка: ${result.error}`);
            console.log('---');
        } catch (err) {
            console.log(`Ошибка парсинга для ${url}: ${err.message}`);
        }
    }
}

// main();
const http = require('http');
const https = require('https');
const { URL } = require('url');

function parseAndCheckUrl(targetUrl) {
    return new Promise((resolve, reject) => {
        let parsedUrl;

        try {
            parsedUrl = new URL(targetUrl);
        } catch (e) {
            reject(new Error('Некорректный формат URL'));
            return;
        }

        const protocol = parsedUrl.protocol === 'https:' ? https : http;
        const options = {
            hostname: parsedUrl.hostname,
            port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
            path: parsedUrl.pathname,
            method: 'HEAD', // Используем HEAD для экономии ресурсов
            timeout: 5000
        };

        const req = protocol.request(options, (res) => {
            resolve({
                url: targetUrl,
                status: res.statusCode,
                headers: res.headers,
                valid: res.statusCode >= 200 && res.statusCode < 400
            });
        });

        req.on('error', (e) => {
            resolve({
                url: targetUrl,
                status: null,
                error: e.message,
                valid: false
            });
        });

        req.on('timeout', () => {
            req.destroy();
            resolve({
                url: targetUrl,
                status: null,
                error: 'Таймаут запроса',
                valid: false
            });
        });

        req.end();
    });
}

async function main() {
    const testUrls = [
        'https://example.com',
        'http://invalid-domain-xyz.com',
        'not-a-url'
    ];

    for (const url of testUrls) {
        try {
            const result = await parseAndCheckUrl(url);
            console.log(`URL: ${result.url}`);
            console.log(`Статус: ${result.status || 'Ошибка'}`);
            console.log(`Доступен: ${result.valid ? 'Да' : 'Нет'}`);
            if (result.error) console.log(`Ошибка: ${result.error}`);
            console.log('---');
        } catch (err) {
            console.log(`Ошибка парсинга для ${url}: ${err.message}`);
        }
    }
}

// main();