深入分析Java Web技术内幕(一)

B/S架构

优点:
1. 客户端使用统一的浏览器。浏览器的交互特性使得用户使用它非常便捷
2. 服务器端基于统一的HTTP。使得服务器开发者可以采用相对规范的开发模式

发生请求

HTTP采用无状态的短连接的通信方式。即一次请求就算完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。

在浏览器输入一个网址后:
1. 浏览器分析链接指向的URL(统一资源定位符)
2. 浏览器请求DNS(域名系统)把这个域名解析成对应的IP地址
3. 根据IP地址在互联网上找到对应的服务器
4. 浏览器与服务器建立TCP连接
5. 向服务器发起一个get请求
6. 由服务器决定返回默认的数据资源给访问的用户
7. 释放TCP连接

在服务器端实际上还有很复杂的业务逻辑:多台服务器,需要一个负载均衡设备来平均分配所有用户的请求;请求的数据是存储在分布式缓存里还是一个静态文件中,或者是数据库里;数据返回浏览器时,浏览器解析数据发现一些静态资源时又发起另外的HTTP请求。

固定不变的原则:
1. 互联网上所有资源都要用一个URL来表示。
2. 必须基于HTTP与服务器端交互
3. 数据展示必须在浏览器中进行。

如何发起一个请求

发起一个HTTP请求的过程就是建立一个Socket通信的过程

HTTP解析

常见的HTTP请求头

请求头说明
Accept-Charset用于指定客户端接收的字符集
Accept-Encoding用于指定的可接受的内容编码
Accept-Language用于指定一种自然语言
Host用于指定被请求资源的Internet主机和端口号
User-Agent客户端将它的操作系统、浏览器和其他属性告诉服务器
Connection当前连接是否保存


常见的HTTP相应头

响应头说明
Server使用的服务器名称
Content-Type用来指明发送给接收者的实体正文的媒体类型
Content-Encoding与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码
Content-Language描述了资源所用的自然语言,与请求对应
Content-Length指明实体正文的长度,用以字节方式存储的十进制数字来表示
Keep-Alive保持连接的时间


常见的HTTP状态码

状态码说明
200客户端请求成功
302临时跳转,跳转的地址通过Location指定
400服务器收到请求有语法错误,不能被服务器识别
403服务器收到请求,但是拒绝提供服务
500服务器发生不可预期的错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值