- HTTP协议就是一套规范,让某个对象能听懂另一个对象在说什么
- 是一种超文本传输协议
- 由W3C(世界万维网联盟)指定的
- 制定了HTTP,HTML4.0,HTML5,XML,DOM等规范
- 万维网之父:蒂姆-伯纳斯-李
- 超文本:
- 不是普通文本,流媒体:声音、视频、图片等
- HTTP协议支持普通文本,还支持流媒体信息
- 这种协议游走于B/S之间,都需要遵循这个协议,这样B/S才能解耦合
- 解耦合就是互相不依赖
- B/S结构就是浏览器服务器结构
- 浏览器向WEB服务器发送数据,叫做请求
- WEB服务器向浏览器发送数据叫响应
- HTTP协议包括:
-
请求协议
- 请求行
- 请求方式:get、post、delete、put、…
- URI:统一资源标识符(URL是统一资源定位符)
- HTTP协议版本号
- 怎么发送GET请求、怎么发送POST请求
- 目前只有,只有一种情况可以发送POET请求、使用form表单、并且使用form标签的method属性值为:method=“post”.
- GET和POST请求有什么区别
- get请求发送数据时,数据会挂在URII的后面,并且在UR后面添加一个“?”,“?”后面是数据,这样会导致发送的的数据回显在浏览器的地址栏上(get请求在“请求行”上发送数据)
- post发送数据的时候,在请求体中发送,不会回显到浏览器地址栏
- get请求只能发送普通的字符串,并且发生的字符串长度有限制,不同的浏览器限制不同
- get请求无法发送大数据量
- post请求可以发送任意数据的类型,包括普通字符串,流媒体等信息:视频、声音、图片
- post可以发送大数据量,理论上没有长度限制
- post在W3C中:post请求比较适合向服务器端传送数据
- get在W3C中:get请求比较适合从服务器端获取数据
- get是安全的,因为它是从服务器获取数据
- post是危险的
- get请求支持缓存,一个get请求的路径对应一个资源,获取到会幻想村
- host请求之后,响应结果不支持缓存
- GET请求和POST请求如何选择 - 获取资源用get,提交数据用post
- 大部分form表单提交,都是post方式,因为form表单要提交大量的数据,这些数据是收集用户信息,一般需要传给服务器
- 如果表单有敏感信息,建议使用post,不会回显到地址栏
- 文件上传一定是post
- 其他是get
- 不管是get还是post,发送的请求数据格式是完全相同的,只不过位置不同,格式是统一的
- name=value&name=value&name=value&name=value
- String s=“name=value&name=value&name=value&name=value”
- s.split(“&”)
- name=value
- 请求头
- 空白行
- 请求体
-
响应协议
-
状态行
- 第一部分:协议版本号
- 状态码
- 200表示响应成功
- 404表示资源不存在,通常是因为路径写错了,要么是对应的资源没有启动成功,是前端错误
- 405通常表示前端发送的请求方式与后端请求的处理方式不一致
- 500通常是服务器端的程序出现了异常,一般是会认为是服务器端的错误导致的
- 以4开始的,一般是浏览器端的错误
- 以5开始的,一般是服务器端的错误
- ok表示正常成功结束
- not found表示资源找不到
-
响应头
- 响应的内容类型
- 响应的内容长度
- 响应的时间
- …
-
空白行
- 原来分割响应头和响应体
-
响应体
-
-
都规定了数据的具体格式
-
- 就是消息模板
- 由W3C(世界万维网联盟)指定的