第五章、Web原理与应用开发
HTTP协议
- WWW
万维网,也就是当今的互联网 - TCP/IP
传输控制协议, 负责网络底层数据的传输,校验等工作 - HTTP
HTTP是一个面向连接,无状态的请求应答协议.- 通信过程,使用时序图描述如下:
其中, 浏览器发送头信息与服务器返回数据都会在响应信息发送完毕后发送一个空白行,表示上面的信息已发送完毕,在服务器关闭连接时,如果浏览器或者服务器在头部加入了代码Connection:keep-alive,(笔者认为应该是使用隔段时间发送一个数据包,也就是心跳包来保持连接)那么TCP连接在发送后仍然保持打开状态. - HTTP请求
HTTP请求方法有以下几种:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- CONNECT
- 通信过程,使用时序图描述如下:
现在的web应用开发大都是前后端分离ajax进行交互,所以通常会规定前定义接口(url),目前的前后端接口我们通常会遵循RESTful规范,也就是说使用请求方法来表示操作类型,如GET请求代表查询,POST代表添加数据,PUT代表修改数据等等,前后端中定义的统一数据交互的格式也不应该包含如code,message等字段,而是只有一个data字段(目前国内大部分的前后端统一数据交互的格式都包含这两种字段,这种风格接近RESTful风格但还不完全是RESTful风格,可以称之为伪RESTful风格),后端服务器向前端服务器返回的数据的结果状态通常由HTTP状态码来完成,如200代表操作成功,401代表授权失败,403代表权限不足等等.如果想返回自定义的错误信息那么我们可以自定义错误对象(这里可自定义错误信息),将错误信息设置在data中,以达到自定义错误的效果.
Web开发技术
- HTML
- CSS
- JS
- XML / JSON(XML更多被用于配置文件,json才是用于web的数据传输)
- 动态网页计算
- JSP
,小一点的系统会使用模板引擎来完成动态网页的开发. - CGI
了解不多,但貌似PHP就是使用此技术
- JSP
- Cookie
cookie是为了解决HTTP的无状态而产生的,cookie需要浏览器的的支持,而当今很多手机端浏览器都是不支持或默认禁用cookie的,所以,更多服务器会使用基于token的技术来认证用户. - Session
服务器内部的用户认证的一种机制,更加安全,但是session内的数据无法跨服务器,所以需要将session数据存入数据库,(大多使用Redis来完成),但目前也越来越多的被token技术所替代. - SSH
SSH框架中Structs 因为有致命漏洞,所以被Spring MVC所替代,国内大部分互联网公司都是使用Spring(IOC容器) + Spring MVC(在Spring 基础上提供Web技术的支持) + MyBatis(对SQL数据库操作的支持).
搞定!