TCP/HTTP链接过程解析

HTTP链接过程

如果我们在浏览器输入了www.baidu.com的网址,在网络链接正常的情况下,浏览器则会进入到百度的首页,呈现给我们。或许我们都知道使用,却不知道底层是先有以下几个步骤完成:

  1. 浏览器分析直接指向的URL;
  2. DNS域名解析IP地址;
  3. 浏览器和服务器三次握手建立链接;
  4. 浏览器发送请求报文段;
  5. 服务器解析请求报文段;
  6. 服务器回复请求报文段,其中包含请求信息以及html文件;
  7. 释放TCP断开连接;
  8. 解析报文段,呈现在浏览器中;
    以上8个步骤完成,才是一次真正的网址访问的完成。

DNS域名解析

DNS(Domain Name System),域名系统,用来便于把人们使用的域名转换成IP地址。DNS系统在设计的时候是一个联机分布式数据库系统。DNS让大多数域名在本地解析,少量在因特网上解析。
域名到IP地址的解析过程如下:当某一个进程需要解析IP地址是,先调用解析程序,把待解析的域名放在DNS请求报文中,以UDP数据报的方式发给本地域名服务器,如果找到IP地址,则把IP地址返回给应答报文中,进程获取到IP地址后即可进行通信。

HTTP请求报文段

HTTP是面向文本的,报文段通常由三个部分组成:1.开始行。2.首部行。3.实体主体。
其中请求行有三个内容:方法,URL,http的版本;
在这里插入图片描述
常见的HTTP请求方法由9种:
在这里插入图片描述
其中HEAD,GET,OPTIONS,TRACE这四种方法是安全的,因为不修改服务器资源。

HTTP请求内容2-4行是HTTP请求字段:
在这里插入图片描述
其中值得注意的是连接方式,由两种选择,分别是短链接(close),表示只应答一次即关闭连接。长链接(Keep-alive),表示建立通信连接之后,可以实现多次应答,等待主动关闭,这样会节省不停请求建立链接的开销。
在所有的头部字段之后,HTTP请求则会包含一个空行,用来表示头部字段的结束。

HTTP应答报文

一个HTTP应答报文的例子:在这里插入图片描述
其中第一行受状态行。“ 200 ok”表示的是状态码和状态信息。在这里插入图片描述
剩下的几行就是HTTP报文段的头部字段。
HTTP协议是一种无状态的协议,每个HTTP请求没有任何上下文关系。为了适应现在交互式的web应用,我们使用Cookie来保持HTTP的连接状态。它是服务器发送给客户端的特殊信息,客户端每次想服务器发送请求带上cookie信息,此时服务器则可以区分不同用户,就可以完成类似基于浏览器的自动登录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值