当我们输入网址点击回车后会发生什么

首选要找到Http协议是基于Tcp/ip协议的,那么我们就需要一个到Tcp/ip层的API,就是socket。要建立socket连接(IP地址和端口号),就要对URL进行域名解析,我们本地主机配置网络会填写一个DNS,本机会把url发给这个DNS服务器,如果服务器找不到这个url对应的IP地址和端口号的话,就从上级发送,直到发送到根服务器得到结果。

现在请求连接建立成功了,给web服务器发送请求,操作方式有GET和POSE。

web服务器接受这个请求后,会在文档空间里面搜索,如果找到后,发送Http信息给web浏览器,格式如下:

常用的HTTP头信息有:
  ① HTTP 1.0 200 OK  这是Web服务器应答的第一行,列出服务器正在运行的HTTP版本号和应答代码。代码"200 OK"表示请求完成。
  ② MIME_Version:1.0 它指示MIME类型的版本。
  ③ content_type:类型 这个头信息非常重要,它指示HTTP体信息的MIME类型。如:content_type:text/html指示传送的数据是HTML文档。

  ④ content_length:长度值 它指示HTTP体信息的长度(字节)。

这里再贴一下常用的Http状态码:

  • 200 OK:客户端请求成功。
  • 304:请求资源没有被修改
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务。
  • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

1XXX:消息

2XXX:成功

3XXX:重定向

4XXX:请求错误

5XXX:服务器错误

应答完毕后,最后是服务器与浏览器断开连接,为了保证其他浏览器能与web服务器建立连接。

浏览器缓存,之前与web服务器建立连接时,浏览器接受到这些信息后会将信息保存在本地目录里面。如果有cookie信息的话也会保存下来。

第二次请求时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 与 If-None-Match 报头, 
这两个报头实际上是第一次请求时服务器返回的Last-Modified,Etag.发送这两个报头目地是询问服务器,该资源在时间内有没有被修改过. 
如果该资源未被修改,则服务器会直接返回HTTP 304 (Not Changed.)状态码,内容为空,此时不会下载资源,浏览器则自动从缓存目录中读取资源. 

使用Last-Modified/Etag 可以减少传输成本,但不会减少http请求 

如果给文件加上关于过期时间(Expires)的header报文,这样浏览器就会先检查缓存中的文件,如果没有过期,就直接使用缓存中的文件,从而不会发送http请求. 



当你在浏览器中输入网址并按下回车键后,会发生以下一系列的步骤: 1. URL解析:浏览器会解析输入网址(URL),将其分解为协议(如HTTP、HTTPS)、主机名(如www.example.com)和路径等组成部分。 2. DNS解析:浏览器将主机名发送给DNS服务器,以获取主机名对应的IP地址。DNS服务器将响应该请求,提供与主机名对应的IP地址。 3. 建立TCP连接:浏览器使用HTTP协议,通过建立TCP连接与服务器通信。它会使用服务器的IP地址和默认的HTTP端口(80)来建立连接。 4. 发送HTTP请求:浏览器向服务器发送HTTP请求,其中包含请求的方法(GET、POST等)、路径、协议版本、请求头部等信息。 5. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行处理。这可能涉及到读取文件、查询数据库或执行其他逻辑。 6. 服务器发送HTTP响应:服务器处理完请求后,会生成一个HTTP响应。响应包含状态码、响应头部和响应体等信息。状态码表示服务器对请求的处理结果,如200表示成功,404表示文件未找到等。 7. 接收响应:浏览器收到来自服务器的HTTP响应后,会根据响应头部的信息进行处理。这可能包括解析HTML、CSS和JavaScript文件,或者下载其他资源(如图片、视频等)。 8. 渲染页面:浏览器使用收到的HTML、CSS和JavaScript等资源来渲染页面。它会解析HTML结构,构建DOM树,并应用CSS样式。然后,它会执行JavaScript代码,以处理交互和动态内容。 9. 显示页面:最后,浏览器将渲染好的页面显示给用户用户可以通过浏览器与页面进行交互,点击链接、填写表单等操作。 总结起来,当你输入网址并按下回车键时,浏览器会通过DNS查询获取服务器的IP地址,然后通过TCP连接与服务器建立通信。浏览器发送HTTP请求,服务器处理请求并返回HTTP响应。浏览器接收响应后,解析并渲染页面,最终将页面显示给用户。 希望能回答你的问题!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值