HTTP协议
也就是超文本传输协议
一种无状态的,以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动
无状态:并不会去存储用户的信息
运行:协议是由请求/应答方式运行的
1.HTTP报文格式
三大部分:
1.起始行:描述请求或响应的基本信息
2.头部字段集合:使用key-value形式更详细的说明报文
3.消息正文:实际传输的数据 不一定是纯文本 可以是图片 、 视频 等二进制数据
图示:
2.请求报文格式
请求方法:如GET\HEAD\PUT\POST
请求目标:通常是一个URL,标记了请求方法要操作的资源
版本号:表示报文使用的HTTP协议版本
3.响应行报文格式
版本号:表示报文使用的HTTP协议版本
状态码:一个三位数,用代码的形式表示处理的结果比如200是成功 500是服务器错误
原因:作为数字状态码补充,是更详细的解释文字,帮助人理解原因
4.HTTP头字段
头部字段是key-value的形式,key和value之间用“:”分割 最后用CRLF换行表示字段结束
头字段注意事项:
字段名不区分大小写,字段名中不允许出现空格可以使用连字符“-”,但是不可以使用下划线“_”(有些服务器不会解析带“_”的头字段),字段名后面必须紧接着“:”,不能有空格,":"后面的字段值前可以有多个空格
字段的顺序没有意义,可以任意排列不影响语义
字段原则上不可以重复,除非这个字段本身的语义允许,例如Set-cookie
5.常用头字段
四大类:
请求字段:请求头中的头字段:HOST referer
响应字段:响应头中的头字段:Server Date
通用字段:在请求头和响应头中都可以出现 Content-type Connection