浅谈Web请求过程

一、B/S架构

       客户端使用统一的浏览器,简化了前端和后端的开发难度。底层都是基于HTTP协议,常见的Http服务器有Apache,IIS,Tomcat,JBoss等。

二、关于HTTP请求

  1. 如何发起一个HTTP请求?

        和建立Socket连接一样,OutputStream.wirte写的二进制字节流肯定要符合HTTP格式规范,通常用户输入一个URL就好,经过一系列复杂的过程,服务器把相应的资源通过InputStream.read返回数据给客户端。

    2.HTTP Header

       常见的请求头                                                                                 

请求头说明
Accept-Charset指定客户端接受的字符集
Accpet-Encoding指定内容接受的编码
Accept-Language指定一种自然语言如zh-cn
Host指定请求资源的Internet主机和端口号
User-Agent将操作系统浏览器其他信息告知服务器
Connection当前连接是否保持

 

 

 

 

 

 

 

 

 

   常见的相应头

相应头说明
Server使用的服务器名称
Content-Type用来指定发给接受者实体正文的媒体类型
Content-Encoding告诉服务端采用那种压缩编码
Content-Language请求资源所用的语言
Content-Length实体正文的长度
Keep-Alive保持连接的时间

 

 

 

 

 

 

     

 

     常见的Http状态码200请求成功,302临时跳转,400客户端请求语法错误,403服务器收到请求但拒绝提供服务,404请求的资源不存在,500服务器异常 .

三.DNS域名解析

  1. 当浏览器输入一个网址的时候,首先浏览器会检查自身缓存中有没有这个域名对应的Ip,如果缓存中有,解析过程结束,当然这个缓存是有大小和时间限制的,TTL设置太短作用不太大,因为每次都要重新解析,太长会导致服务器那边域名IP映射发生变化用户访问不了网站.
  2. 浏览器缓存中没有,浏览器会看当前操作系统中有没有改域名对应的DNS解析缓存,命中过程结束
  3. LDNS,也就是本地区的域名服务器,可以通过Ipconfig命令来查看
  4. 会连接到Root Server域名服务器请求解析
  5. 根域名服务器会返回给本地域名服务器一个所查询的主域名服务器(如gTLD)
  6. LDNS 向上一个返回的gTLD服务器发送请求
  7. 接受请求的gTLD服务器查找相应的Name Server域名服务器的地址,通常是向某个域名提供商申请的域名,接着解析任务就交给了域名提供商的服务器
  8. 会寻找域名IP映射,正常情况下都会找到目标Ip带上一个TTL值返回给DNS Server域名服务器
  9. 返回域名和对应的IP,TTL;LDNS 会进行缓存,
  10. 解析结果返回给用户,用户根据TTL缓存到本地系统,至此解析过程结束.

       

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值