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

本文详细介绍了HTTP协议的工作原理,包括如何通过TCP/IP建立连接、域名解析的过程、常见的HTTP请求方法(GET和POST)以及响应状态码的含义。同时,还探讨了浏览器如何利用缓存来提高加载效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首选要找到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请求. 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值