一、HTTP请求:
①首行:
1)method
2) url
3) version
三部分是用空格分割
②header协议头
若干份键值对,键和值之间使用“冒号空格”分割
此处的键值对可以是用户自定义的,但是大部分是http中已有的,具有特定含义的内容。
③空行
header的结束标记
④正文(body)
可能是空(GET),也可能是非空(POST)
格式类似于url中的查询字符串,使用&符号分割成多个键值对,每个键值对内部使用=来分割键和值。
Content-Length 决定了body的长度;
Content-Type:决定body的数据格式,body的数据格式有很多种。
二、HTTP响应:
①首行;
1)version 版本号
2)状态码
3)状态码描述信息
②header
每一行是一个键值对
键和值之间仍然使用“冒号空格”分割
③空行
④body(正文)
响应的正文来说,最常见的数据格式就是html,表示了一个网页的具体内容
html也是一种编程语言(在浏览器上运行,描述网页)
三、HTTP的方法
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种方法:GET、PUT、HEAD
HTTP1.1新增六种
1)GET 请求指定的页面信息,并返回实体主体
2)HEAD 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
3)POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
POST 请求可能会导致新的资源的建立或已有资源的修改
4)PUT 从客户端向服务器传送的数据取代指定的文档的内容
5)DELETE 请求服务器删除指定的页面。
6)CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
7)OPTIONS 允许客户端查看服务器的性能。
8)TRACE 追踪路径,回显服务器收到的请求,主要用于测试或诊断。
9)PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
GET一般把数据放到URL中,POST一般把数据放到body中,两者都可以用来获取资源或者提交数据。
四、HTTP状态码
1)1XX Informational(信息) 接受的请求正在处理
2)2XX Success(成功状态码) 请求正常处理完毕
3)3XX Redirection(重定向) 需要进行附加操作以完成请求
4)4XX Client Error(客户端错误) 服务器无法处理请求
5)5XX Sever Errot(服务器错误) 服务器处理请求出错
五、HTTP中 header
Host:访问的主机和端口号,如果没写端口号默认80(HTTP)443(HTTPS)
User-Agent:声明用户的操作系统和浏览器版本信息,使服务器可以决定返回的页面只有文字还是包含多媒体。
referer:当前页面是从哪个页面跳转过来的
location:搭配3XX状态码使用,告诉客户端接下来要去哪里访问
Cookie:用于在客户端存储少量信息,通常用于实现会话功能
这个字符串是通过服务器返回的响应中的Set-Cookie字段中来的,后续再访问该服务器,请求中就会自动带上Cookie字段
可以把多个请求关联在一起,浏览器是按照域名来区分的Cookie的