搜尋
首頁後端開發php教程关于HTTP Keep-Alive

只知道他可以保持长连接,有个小小的疑问,他是如何辨别是否是同个用户的,是IP吗? 如果是的话哪整局域网都可以用得到这个长链接对吗?

回复内容:

只知道他可以保持长连接,有个小小的疑问,他是如何辨别是否是同个用户的,是IP吗? 如果是的话哪整局域网都可以用得到这个长链接对吗?

tcp协议中包含四个要素源地址 源端口号 目的地址 目的端口号,双方从建立通信开始,这四项就是固定的,假设http服务器是监听80端口,那么对于客户端浏览器来说,这四要素就是浏览器ip 浏览器操作系统给当前请求分配的socket句柄端口号 web服务器地址 80。浏览器在建立socket前,需要先向操作系统申请一个socket句柄,申请成功后就得到一个本地的socket句柄端口号,然后和服务器通过三次握手建立TCP连接。建立连接后,在服务器端也会有一个对应的socket句柄。同时在TCP层,每个TCP请求都还有一个seq编号,在TCP握手的时候产生的。双方进行通信的时候,网卡中得到的数据包中解析出这个seq号,就知道是对应哪个socket句柄了。

首先,连接在建立的时候就已经确立了连接的双方,也只有位于已经确立的连接两端的用户可以使用这个长连接。
你在电脑上打开浏览器连接网站,在确立连接的过程中,是你的电脑与网站服务器建立的连接,在连接保持的过程中,其他电脑是没法借用你这个连接的。

连接的形成是终端(你的电脑、网站的服务器)通过 socket 端口套接字形成的映射关系,判断和识别这个连接,也是通过对应主机的端口来实现的。

session.

长链接、短链接指的是 TCP 层的事情。HTTP层的用户识别还是通过 SESSION。

1.HTTP 的 Keep-Alive 指的是 TCP/IP Socket 的长连接,即用户浏览器=>Web容器的这一段来处理这个问题,与你的代码无关。

2.保持长连接,是为了在短时间内,同一个Client下次再次向本服务器的Web容器发起请求,不用再次进行握手建立连接这一繁杂的阶段,节省服务器的处理时间,以及提升下一次请求的处理速度。

3.对于一个 Socket (套接字)来说,已经建立一个 TCP 连接,是针对于一个IP一个发起请求的端口,以及远端服务器一个IP一个接受请求的端口而言的。由于HTTP 长连接是基于此的,所以并不是针对同一个用户的长连接,而是针对同一个连接的长连接。

4.路由器之所以能让内网所有用户使用同一个外网IP对外发起网络请求,是因为 NAT 机制,所以当一个内网用户对一个Web容器发起请求后,对于Web容器而言,与他建立连接的是该内网的最外层网络节点(比如路由器)。而当Web容器传回数据,路由器能够通过NAT overload,对数据包的目标进行区分,发送到指定的内网设备的端口上,不会存在内网所有设备串线的情况

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Springboot怎么使用内置tomcat禁止不安全HTTPSpringboot怎么使用内置tomcat禁止不安全HTTPMay 12, 2023 am 11:49 AM

Springboot内置tomcat禁止不安全HTTP方法1、在tomcat的web.xml中可以配置如下内容让tomcat禁止不安全的HTTP方法/*PUTDELETEHEADOPTIONSTRACEBASIC2、Springboot使用内置tomcat没有web.xml配置文件,可以通过以下配置进行,简单来说就是要注入到Spring容器中@ConfigurationpublicclassTomcatConfig{@BeanpublicEmbeddedServletContainerFacto

JAVA发送HTTP请求的方式有哪些JAVA发送HTTP请求的方式有哪些Apr 15, 2023 am 09:04 AM

1.HttpURLConnection使用JDK原生提供的net,无需其他jar包,代码如下:importcom.alibaba.fastjson.JSON;importjava.io.BufferedReader;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.net.HttpURLConnection;

nginx中如何升级到支持HTTP2.0nginx中如何升级到支持HTTP2.0May 24, 2023 pm 10:58 PM

一、前言#ssl写在443端口后面。这样http和https的链接都可以用listen443sslhttp2default_server;server_namechat.chengxinsong.cn;#hsts的合理使用,max-age表明hsts在浏览器中的缓存时间,includesubdomainscam参数指定应该在所有子域上启用hsts,preload参数表示预加载,通过strict-transport-security:max-age=0将缓存设置为0可以撤销hstsadd_head

Nginx的HTTP2协议优化与安全设置Nginx的HTTP2协议优化与安全设置Jun 10, 2023 am 10:24 AM

随着互联网的不断发展和改善,Web服务器在速度和性能上的需求也越来越高。为了满足这样的需求,Nginx已经成功地掌握了HTTP2协议并将其融入其服务器的性能中。HTTP2协议要比早期的HTTP协议更加高效,但同时也存在着特定的安全问题。本文将为您详细介绍如何进行Nginx的HTTP2协议优化和安全设置。一、Nginx的HTTP2协议优化1.启用HTTP2在N

Python的HTTP客户端模块urllib与urllib3怎么使用Python的HTTP客户端模块urllib与urllib3怎么使用May 20, 2023 pm 07:58 PM

一、urllib概述:urllib是Python中请求url连接的官方标准库,就是你安装了python,这个库就已经可以直接使用了,基本上涵盖了基础的网络请求功能。在Python2中主要为urllib和urllib2,在Python3中整合成了urllib。Python3.x中将urllib2合并到了urllib,之后此包分成了以下四个模块:urllib.request:它是最基本的http请求模块,用来模拟发送请求urllib.error:异常处理模块,如果出现错误可以捕获这些异常urllib

Nginx中HTTP的keepalive怎么配置Nginx中HTTP的keepalive怎么配置May 12, 2023 am 11:28 AM

httpkeepalive在http早期,每个http请求都要求打开一个tpcsocket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次tcp连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少time_wait状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。但是,keep-ali

Nginx http运行状况健康检查如何配置Nginx http运行状况健康检查如何配置May 14, 2023 pm 06:10 PM

被动检查对于被动健康检查,nginx和nginxplus会在事件发生时对其进行监控,并尝试恢复失败的连接。如果仍然无法恢复正常,nginx开源版和nginxplus会将服务器标记为不可用,并暂时停止向其发送请求,直到它再次标记为活动状态。上游服务器标记为不可用的条件是为每个上游服务器定义的,其中包含块中server指令的参数upstream:fail_timeout-设置服务器标记为不可用时必须进行多次失败尝试的时间,以及服务器标记为不可用的时间(默认为10秒)。max_fails-设置在fai

怎么利用Java实现调用http请求怎么利用Java实现调用http请求Jun 02, 2023 pm 04:57 PM

一、概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。在Java项目中调用第三方接口的方式有:1、通过JDK网络类Java.net.HttpURLConnection;2、通过common封装好的HttpClient;3、通过Apache封装好的CloseableHttpClient;4、通过SpringBoot-RestTemplate;二、Java调用第三方

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),