一、Web相关概念及软件
(一) Web应用开发是什么?
Web应用开发就是指开发Web应用程序,就是开发B/S架构的应用,Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可。
(二) 软件架构
1. C/S: 客户端/服务器端
2. B/S: 浏览器/服务器端,通过浏览器域名访问不同服务器的程序
(三) 资源分类
1. 静态资源:
所有用户访问后得到的结果是一样的,成为静态资源,静态资源可以直接被浏览器解析。如:html,css,javascript等
2. 动态资源:
每个用户访问相同的资源,得到的结果可能不同,成为动态资源吗,动态资源被访问后,需要先转换为静态资源,再返回给浏览器。如:servlet/jsp,php,asp等
(四) 网络通信三要素
1. IP: 电子设备(计算机)在网络中的唯一标识
2. 端口: 应用程序在计算机中的唯一标识
3. 传输协议: 规定了数据传输的规则
二、HTTP协议
(一) 概念
英文全称: HyperText Transfer Protocol,超文本传输协议
传输协议: 定义了客户端和服务器端通信时,发送数据的格式
HTTP的请求和响应:
Web服务器一般使用默认端口80监听客户端的请求,请求由客户端发起,服务器收到请求会向客户端返回一个状态,比如“HTTP/1.1 200 OK”,以及返回的内容,比如请求的文件,错误信息或者其它信息,这就是服务器端的响应。HTTP协议定义的8种方法(动作)来操作指定的资源,其中最重要的是GET和POST。当Web服务器接收到客户端的请求后,由Web组件(JSP或者Servlet)进行处理,处理结束后组件会向客户端返回HTTP响应。
【概述】
HTTP设计的最初目的是为了提供一种发布和接受HTML页面的方法。是客户端和服务器端之间进行请求和相应的一个标准。
(二) 特点
1. 基于TCP/IP的高级协议
2. 默认端口号是80
3. 基于请求/响应模型的,即一次请求和一次响应是对应的
4. 无状态的:每次请求之间相互独立,不能交互数据
(三) 历史版本
1. 1.0版本:每一次请求都会建立新的连接。客户端对某服务器端进行一次访问要发起多次请求,一个页面中图片,文字,视频,js资源等资源都是单独的请求,需要多次建立连接
例如对https://baidu.com进行访问,查看请求次数,如下图所示:
2. 1.1版本:复用,不会立马断掉连接
(四) 请求消息数据格式
1. 请求行
格式:请求方式 请求url 请求协议/版本
- 请求方式有7种,常用有GTE和POST俩种:
GET:
1.请求参数在请求中
2.请求的url长度有限制
3.不太安全
POST:
1.请求参数在请求中
2.请求的url长度有限制
3.相对安全
2. 请求头
格式:请求头名称:请求头值
- 常见请求头:
1.User-Agent:
浏览器告诉服务器我访问你使用的浏览器的版本,作用就是在服务器端获取该头信息,解决浏览器的兼容性问题,因为服务器端返回的静态页面在不同浏览器解析得到的结果有差异。
2.Referer:
https://www.baidu.com,告诉服务器,当前请求从哪里来
作用:
(1)防盗链
(2)统计工作
3. 请求空行
就是空行,分割请求头和请求体
4. 请求体(请求正文)
请求的参数数据
(五) 响应消息数据格式
1. 响应行
- 格式:协议/版本 响应状态码 状态码描述
- 响应状态码:服务器告诉客户端浏览器本次请求和相应的一个状态
1xx: 服务器接收客户端消息,但没有接收完成,等待一段时间后,发送1xx状态码
2xx: 成功
3xx: 重定向。代表302(重定向),304(访问缓存)
4xx: 客户端错误。比如404(资源路径写错了),405(请求方式没有对应的方法)
5xx: 服务器端错误。500(服务器内部出现异常)
2. 响应头
格式:响应头名称:响应头值
- 常见请求头:
1.Content-Type: 服务器告诉客户端本次响应体数据格式以及编码格式
2.Content-disposition: 服务器告诉客户端以什么格式打开响应体数据
默认值:
1.in-line:默认值,在当前页面打开
2.attachment;filename=***,以附件形式打开响应体,如文件下载
3. 响应空行
就是空行,分割响应头和响应体
4. 响应体(响应正文)
返回的html页面就是响应体
【相关】
Servlet笔记整理(二)