var btn = document.createElement('button');
btn.innerHTML = "Create Table";
document.body.appendChild(btn);
btn.addEventListener("click", createTable, true);
function createTable(){
var div = document.createElement('div');
div.setAttribute("id", "tbl");
document.body.appendChild(div)
document.getElementById("tbl").innerHTML = "<table border = '1'>" +
'<tr>' +
'<th>Heading</th>' +
'<th>Heading</th> ' +
'<th>Heading</th>' +
'</tr>' +
'<tr>' +
'<td>cell</td>' +
'<td>cell</td>' +
'<td>cell</td>' +
'</tr>' +
'<tr>' +
'<td>cell</td>' +
'<td>cell</td>' +
'<td>cell</td>' +
'</tr>' +
'<tr>' +
'<td>cell</td>' +
'<td>cell</td>' +
'<td>cell</td>' +
'</tr>'
};
Браузеры не прослушивают порт 80
, HTTP серверы слушают (хотя это всего лишь соглашение, вы можете легко получить FTP- или telnet-сервер, использующий порт 80
).
В TCP / IP «сеанс» должен быть уникальным, и сеанс определяется как 5-кортеж (протокол, исходный IP, исходный порт, целевой IP, целевой порт)
. Это позволяет правильно маршрутизировать пакеты в Интернете.
Обычно, когда клиент пытается связаться с сервером, он указывает 0
в качестве исходного порта, что означает, что операционная система назначает ему неиспользуемый. Это означает, что клиент будет прослушивать этот порт, а не порт 80
.
Таким образом, вы можете получить сеанс со свойствами (TCP, mybox.com, 1101, www. microsoft.com, 80)
, когда ваш браузер выходит на веб-страницы Microsoft.
Если вы обнаружите, что не можете привязать свой сервер к порту 80
, скорее всего, это произойдет, потому что у вас уже есть сервер, работающий на этом порту, или ваша программа не имеет необходимых привилегий для привязки к этому порту (порты меньше 1024
обычно считаются привилегированными портами).
Запуск netstat -a
(в Linux или Windows) сообщит вам, привязан ли сервер к порту 80
. Ищите прослушиватель на порту 80
(или http
, если он разрешает порты в имена служб), например:
tcp 0 0 localhost:http *:* LISTEN
Они не слушают порт 80, они разговаривают с портом 80 или с портом 443, если вы используете SSL (или на любом другом порту, если администратор нарушил соглашение, вы могли видеть URL-адреса например http://www.site.com:8080 , где сайт был настроен на порт 8080).
Браузер сделает запрос из случайного порта с большим номером, то есть больше, чем браузер могут быть активны в одно и то же время.
Как говорит paxdiablo, вы можете использовать netstat, чтобы увидеть, какие программы прослушивают соединения (использование "netstat -a -b" покажет, какой исполняемый файл привязан к какому порту)
Браузеры фактически не прослушивают порт 80. Веб-серверы делают это, и браузер открывает соединение с портом между 49152 и 65535, я думаю (динамические порты).
В сетевом соединении есть один партнер (обычно называемый клиентом), который подключается к другому (обычно называемому сервером). Говорят, что сервер прослушивает определенный порт, в то время как клиент, как говорят, подключается к этому порту.
В этом случае веб-сервер прослушивает порт 80, в то время как все клиенты (браузеры) подключаются к нему.
Когда браузер устанавливает соединение с сервером, он привязывается к локальному непривилегированному порту, но подключается к порту 80 веб-сервера. Когда сервер отправляет ответ, он переходит на непривилегированный порт на компьютере браузера. Если на одном компьютере установлено два браузера, они привязываются к разным портам.
Если вы имеете в виду «как два сервера могут прослушивать порт 80», рассмотрите возможность использования API HTTP-сервера. Оба сервера могут зарегистрировать функцию обратного вызова вместе с URL-адресом. Затем клиент может решить, к какому серверу обращаться, на основе URL-адреса, например,
http: // localhost / Service1 перейдет к службе, которая указала " http: // localhost / Service1 "как его URL.
Браузеры вообще не привязаны к порту 80. Вы, вероятно, обнаружите, что используете IIS или другой веб-сервер, который привязан к , и это является причиной ваших проблем