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请求发送数据是加密发送的,比安全
  • 理论上发送的数据没有长度限制
  • 发送的数据是加密后和请求体一起发送的

POST响应头