浏览器输入一个网址后到底发生了什么?

浏览器输入一个网址后到底发生了什么?,第1张

1域名解析:

浏览器会根据输入的域名进行解析服务器ip

2浏览器与服务器通过三次握手建立TCP连接

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

一个tcp包中有这样的几个标示位非常关键。SYN[同步]、seq[序列号]、ack[确认序列号]、ACK[确认回应]

第一次握手: 客户端给服务器端发送tcp包,包的SYN,初始序列号seq=x。

第二次握手: 服务器回应tcp包,包的SYN=1,ACK=1,ack为x+1 , seq设置为y

第三次握手: 客户端再次回应服务器端,SYN标志位为0,ACK标志位为1。确认序列号ack为y+1

为什么要三次握手?而不是2次握手?

两次握手只能保证服务器端能收到客户端 的请求,并不能保证客户端也能收到服务端的请求。所以三次握手能够保证双方安全有效的通讯防止SYN的洪水攻击

3浏览器向服务器发送请求

4服务器出来请求进行相应

5浏览器根据服务器响应的数据进行渲染

6四次挥手断开>

前言:作为一个web开发工程师,工作中大量时间是和Request和Response打交道,这篇文章是我目前对二者的理解和总结。

Request 和 Response 是 > cookies。
cookies是用户与服务器交互的一种重要手段,如今许多Web站点都使用了cookies技术。有的站点不使用这种技术甚至无法访问。
当用户向一个基于web的电子邮件系统注册时,浏览器向服务器发送cookie消息,允许该服务器在用户与应用程序会话的过程中标识该用户。

Server-Sent 事件 - 单向消息传递Server-Sent 事件指的是网页自动获取来自服务器的更新。以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。例子:Facebook/Twitter 更新、估价更新、新的博文、赛事结果等。浏览器支持所有主流浏览器均支持服务器发送事件,除了 Internet Explorer。接收Server-Sent 事件通知EventSource 对象用于接收服务器发送事件通知:实例var source=new EventSource("demo_ssephp"); sourceonmessage=function(event) { documentgetElementById("result")innerHTML+=eventdata + "<br />"; }; 例子解释:创建一个新的 EventSource 对象,然后规定发送更新的页面的 URL(本例中是 "demo_ssephp")每接收到一次更新,就会发生 onmessage 事件当onmessage 事件发生时,把已接收的数据推入 id 为 "result" 的元素中检测Server-Sent 事件支持在上面的 TIY 实例中,我们编写了一段额外的代码来检测服务器发送事件的浏览器支持情况:if(typeof(EventSource)!=="undefined") { // Yes! Server-sent events support! // Some code } else { // Sorry! No server-sent events support } 服务器端代码实例为了让上面的例子可以运行,您还需要能够发送数据更新的服务器(比如 PHP 和 ASP)。服务器端事件流的语法是非常简单的。把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。

Ajax向服务器发送请求

Ajax对象创建完成后,下面就要讲解一下Ajax如何使用。首先详细讲解一下Ajax向服务器发送请求所需的两个方法,具体如下:

(1)open()方法

open()方法用于创建一个新的>在一次重定向过程中浏览器一共会发出2次服务器请求。根据查询的相关公开信息。重定向过程中浏览器会向服务器发送两次,意味着有两个Servlet,整个过程有两个请求,两个响应,而请求转发过程只是有一个Servlet,整个过程是一个请求,一个响应。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12983613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存