http协议

客户端的浏览器版本很多,如何实现不同版本和服务器的通信?

HTTP超文本传输协议
客户端和服务端定义好的规范。 所有人在进行请求和响应过程中,都需要遵循这些规范。

当webserver拥有了动态生成页面的applet程序的能力的时候,此时可以将webserver称为容器,可以按照需求返回动态的页面

servlet:server applet 基于http协议在服务端生成的小程序。
JSP:java server page
高级框架:如ssm

客户端和服务器端交互过程
在这里插入图片描述

http协议的特点

  1. 简单快速:用键值对的格式,来声明格式规范。
  2. 灵活:数据格式类型有json、text等
  3. 无连接:早期版本是短连接。http1.1后支持长连接
  4. 无状态:上次的状态不会保存
  5. 支持B/S和C/S架构

B/S:Browser/Server 现在更多 比如网页版京东
C/S:Client/Server 比如电脑上登录qq,要先下载安装包

http交互流程

在这里插入图片描述

http协议请求格式

请求行: 请求方法 URL 协议版本
请求头: 头部键 值 【头信息中的附加信息 比如客户端允许接收的格式,语言,浏览器对应版本等】
空行
请求体: 请求数据

http请求方法

GET : 请求获取由request-url 所标识的资源
PUT :请求服务器存储一个资源,并用request-url作为其标识
POST:在request-url所标识的资源后附件新的数据
HEAD:请求获取由request-url 所标识的资源的响应消息报头
DELETE:请求服务器删除由request-url 所标识的资源

get和post请求方式的区别
get请求参数是直接显示在地址栏的,而post在地址栏不显示
get不安全,post安全
get请求参数是有参数限制的,但post没有

http响应格式

状态行: 协议版本 状态码 状态码描述
响应头: 头部键 值 【头信息中的附加信息,是给浏览器看的 比如日期,文本长度,文本格式等】
空行
响应体: 请求数据 【渲染后给用户看的】

状态码

状态码
1xx 服务器收到请求,需要请求者继续操作
2xx 成功,操作被成功接收并处理
3xx 重定向,需要进一步操作
4xx 客户端错误
5xx 服务端错误

常见响应状态码
200 客户端请求成功
400 客户端语法错误
403 服务器收到请求,但拒绝提供服务
404 请求资源不存在
500 服务器内部错误
503 服务器当前不能处理客户端请求