本文已参与「新人创作礼」活动,一起开启掘金创作之路。
目录
1. 什么是Web?
Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。
JavaWeb就是用Java技术来操作web领域的技术栈
2. JavaWeb技术栈
2.1 B/S架构
Browser/Server,浏览器/服务器 架构模式
客户端 只需要浏览器,应用程序的逻辑和数据都存储在 服务器端。
2.2 服务器端配置
2.2.1 静态资源
常用技术:HTML、CSS、JavaScript(vue框架是对JavaScript dom操作的简化)、图片
2.2.2 动态资源
常用技术:Servlet、JSP
动态资源处理完逻辑后会把得到的结果交给静态资源来进行展示。动态资源对每个用户会显示不一样的东西,比如登录账户之后会显示头像和名字,而静态资源是对每个人显示的一样的。
会话技术 是用来存储客户端和服务端交互所产生的数据,HTTP协议是无状态协议时,对于事物处理没有记忆能力,就需要会话技术。
2.2.3 请求、响应
Request:是从客户端向服务端发出的请求对象,
Response:是从服务端响应给客户端的结果对象,
HTTP协议:是写请求和响应需要遵循的一种规则
3. HTTP协议分类
3.1 基于TCP协议:
面向连接,安全
TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。
3.2 基于请求-响应模型的:
一次请求对应一次响应
3.3 HTTP协议是无状态协议:
对于事物处理没有记忆能力,每次请求-响应都是独立的。
- 缺点:多次请求间不能共享数据
- 优点:速度快
一个例子理解这个缺点:发起去购物车结算的请求后,因为无法获取哪些商品加入了购物车
解决方法:引入会话技术(Cookie、Session)
4. HTTP定义的请求格式
4.1 请求方式
请求方式有七种,最常用的是 GET 和 POST
区别:
- GET请求 的请求参数在请求行中,没有请求体,POST 请求的 请求参数在请求体中
- GET请求的请求参数大小有限制,POST没有
4.2 请求组成
三部分:请求行、请求头、请求体
4.2.1 请求行(第一行)
请求方式/请求URL路径/HTTP协议及版本
GET/HTTP/1.1
4.2.2 请求头(第二行开始)
格式为key: value形式(类似于Python中的字典,java中的hashmap),其中包含若干属性
Host: 表示请求的主机名
User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ...Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...)like Gecko;
Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。
4.2.3 请求体(请求头空一行写)
POST请求的最后一部分,存储请求参数。GET请求没有。
5. HTTP定义的响应格式
5.1 响应组成
三部分:请求行、请求头、请求体
5.2 请求行(第一行)
HTTP协议/版本 响应状态码 状态码的描述
HTTP/1.1 200 ok
响应状态码
最常用的三个
- 200 ok 客户端请求成功
- 404 Not Found 请求资源不存在
- 500 Internal Server Error 服务端发生不可预期的错误
5.3 请求头(第二行开始)
Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
Content-Length:表示该响应内容的长度(字节数);
Content-Encoding:表示该响应压缩算法,例如gzip;
Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒
5.4 请求体(请求头空一行写)
写的html代码,可以在前端运行产生想要的效果