互联网通信过程
B/S结构系统的角色和协议
B/S结构系统的通信原理
控制浏览器请求行为【三要素】
- 控制浏览器发送的请求地址(超链接,表单)【避免出现404】
<a></a>
<form></form>
- 控制浏览器发送请求的方式(post/get)【避免出现405】
【超链接:get】
【表单:post/get】
- 控制浏览器发送请求携带的参数(?xxx=xxx&xxx=xxx&…)
<a></a>
<!--表单域标签-->
【input,select,textarea】
控制浏览器接收结果行为
- 控制浏览器采用对应【编译器】,将接收的二进制数据解析为【文字,视频,图片,命令】
- 控制浏览器将解析内容或者命令进行执行与展示(全局刷新展示/局部刷新展示)
- 控制用户与浏览器之间的交互【JavaScript —> Jquery】
静态资源文件,动态资源文件(存储在服务端计算机上)
-
静态资源文件
- 文档
- 图片
- 视频
- 命令(html,css,js)
-
动态资源文件
-
Java世界中,class文件才是动态资源文件。
-
Http服务器负责接收请求后,创建类文件实例对象。
-
Servlet servlet = new Servlet();
-
-
Http服务器通过实例对象(servlet)调用方法处理用户的请求。
-
Http服务器负责将方法的运行结果,以二进制形式推送回发送请求的浏览器。
-
Http请求协议包
- 请求行
- 请求头
- 空白行
- 请求体
请求行:
- 包括三部分:
- 第一部分:请求方式(7种)
- get(常用的)
- post(常用的)
- delete
- put
- head
- options
- trace
- 第二部分:URI
- 什么是URI? 统一资源标识符。代表网络中某个资源的名字。但是通过URI是无法定位资源的。
- 什么是URL?统一资源定位符。代表网络中某个资源,同时,通过URL是可以定位到该资源的。
- URI和URL什么关系,有什么区别?
- URL包括URI
- http://localhost:8080/servlet05/index.html 这是URL。
- /servlet05/index.html 这是URI。
- 第三部分:HTTP协议版本号
- 第一部分:请求方式(7种)
请求头:
- 请求的主机
- 主机的端口
- 浏览器信息
- 平台信息
- cookie等信息
- …
空白行:
- 空白行是用来区分“请求头”和“请求体”
请求体:
- 向服务器发送的具体数据。
Http响应协议包
- 状态行
- 响应头
- 空白行
- 响应体
状态行:
- 三部分组成
- 第一部分:协议版本号(HTTP/1.1)
- 第二部分:状态码(HTTP协议中规定的响应状态号。不同的响应结果对应不同的号码。)
- 200 表示请求响应成功,正常结束。
- 404表示访问的资源不存在,通常是因为要么是你路径写错了,要么是路径写对了,但是服务器中对应的资源并没有启动成功。总之404错误是前端错误。
- 405表示前端发送的请求方式与后端请求的处理方式不一致时发生:
- 比如:前端是POST请求,后端的处理方式按照get方式进行处理时,发生405
- 比如:前端是GET请求,后端的处理方式按照post方式进行处理时,发生405
- 500表示服务器端的程序出现了异常。一般会认为是服务器端的错误导致的。
- 以4开始的,一般是浏览器端的错误导致的。
- 以5开始的,一般是服务器端的错误导致的。
- 第三部分:状态的描述信息
- ok 表示正常成功结束。
- not found 表示资源找不到。
响应头:
- 响应的内容类型
- 响应的内容长度
- 响应的时间
- …
空白行:
- 用来分隔“响应头”和“响应体”的。
响应体:
-
响应体就是响应的正文,这些内容是一个长的字符串,这个字符串被浏览器渲染,解释并执行,最终展示出效果。
-
响应的内容类型
-
响应的内容长度
-
响应的时间
-
…
空白行:
- 用来分隔“响应头”和“响应体”的。
响应体:
- 响应体就是响应的正文,这些内容是一个长的字符串,这个字符串被浏览器渲染,解释并执行,最终展示出效果。