HTTP请求详解
常用状态码
- 200:表示请求成功,返回资源
- 301:表示资源已经被永久转移
- 302:表示资源暂时被转移,并重定向到资源转移的位置
- 304:表示资源未被修改,不返回资源,使用缓存中的资源(配合Last-Modified请求字段使用)
- 400:表示客户端发送了一个异常的请求(请求失败)
- 404:表示找不到目标资源
- 500:表示服务器内部发生错误,不能响应请求
HTTP请求头常见字段
- 请求头的第一行表示请求的方式,请求的资源路径(url),请求使用的协议和协议版本
- Accept:表示浏览器能接受响应返回的资源类型
- Accept-Encoding:表示浏览器能接受返回的压缩编码格式
- Accept-Language:表示浏览器能接受的语言类型
- Connection:表示连接的类型
- Cookie:表示验证用户身份的字符串
- Host:表示请求的主机地址
- Referfer:表示发起请求的资源(页面),在服务端一般使用该字段进行防盗链接检测
- User-Agent:表示用户使用浏览器的类型和版本,使用设备的类型和版本
- Content-Type:表示提交数据的类型(压缩后的编码格式,表单使用的url编码)
- Content-Length:表示发送数据的长度
- Origin:表示发出请求的主机
HTTP响应头常见的字段
- 第一行表示的是使用的协议和协议版本,响应的状态码,状态码的描述
- Server:表示响应服务的软件
- Last-Modified:表示请求的资源上次更新的时间(一般该字段配合缓存使用)
- Accept-Ranges:表示响应资源的传输格式(字节流,还是字符流,等等)
- Content-Length:表示响应资源的长度(单位字节)
- Date:表示服务器响应的时间
- Location:资源重定向的RUI(位置)
使用GET请求的情况
- 传输数据量小时(小于2k时)
- 引入css文件和js文件
- a标签的跳转
- img标签引入图片
- 浏览器地址栏直接访问默认使用的是GET方式
- form表单设置提交方式为GET
使用POST请求的情况
- form表单设置提交方式为POST
- 对数据有安全要求时
- 在登陆,留言,发帖,删贴等对数据传输有安全要求的情况
- 传输大数据的情况
GTE请求头
- get请求,发送数据是明文发送的,显示在浏览器的地址栏,不安全
- 发送数据有长度限制(一般最大为2k)
GET响应头
POST请求头
- post请求发送数据是加密发送的,比安全
- 理论上发送的数据没有长度限制
- 发送的数据是加密后和请求体一起发送的