Skip to content

GET 请求与 POST 请求的区别

TIP

(1)post 更安全(不会作为 url 的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)

(2)post 发送的数据更大(geturl 长度限制)

(3)post 能发送更多的数据类型(get 只能发送 ASCII 字符)

(4)postget

(5)post 用于修改和写入创建数据, get 一般用于搜索排序和筛选之类的操作,目的是资源的获取,读取数据

(6)Get 请求的报文中实体部分为空,Post 请求的报文中实体部分一般为向服务器发送的数据

常见的HTTP请求头和响应头

HTTP Request Header 常见的请求头:

  • Accept:浏览器能够处理的内容类型
  • Accept-Charset:浏览器能够显示的字符集
  • Accept-Encoding:浏览器能够处理的压缩编码
  • Accept-Language:浏览器当前设置的语言
  • Connection:浏览器与服务器之间连接的类型
  • Cookie:当前页面设置的任何Cookie
  • Host :请求头指明了请求将要发送到的服务器主机名和端口号
  • Referer:发出请求的页面的URL
  • User-Agent:浏览器的用户代理字符串

HTTP Responses Header 常见的响应头:

  • Date:表示消息发送的时间
  • server:服务器名称
  • Connection:浏览器与服务器之间连接的类型
  • Cache-Control:控制HTTP缓存
  • content-type:表示后面的文档属于什么MIME类型

TIP

常见的 Content-Type 属性值有以下四种:

(1)application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。该种方式提交的数据放在 body 里面,数据按照 key1=val1&key2=val2 的方式进行编码,keyval 都进行了 URL 转码。

(2)multipart/form-data:该种方式也是一个常见的 POST 提交方式,通常表单上传文件时使用该种方式。

(3)application/json:服务器消息主体是序列化后的 JSON 字符串。

(4)text/xml:该种方式主要用来提交 XML 格式的数据。

HTTP状态码304

TIP

HTTP 状态码 304HTTP 协议中用于优化性能和减少不必要数据传输的一种机制。

但是网站在一定时间内一直处于 304 的状态,那么蜘蛛可能会降低对网站的抓取次数。相反,若网站变化的频率非常之快,每次抓取都能获取新内容,那么日积月累,回访率也会提高。

产生较多304状态码的原因:

  • 页面更新周期长或不更新
  • 纯静态页面或强制生成静态html

304状态码出现过多会造成以下问题:

  • 网站快照停止;
  • 收录减少;
  • 权重下降。

常见的HTTP请求方法

TIP

  • GET: 向服务器获取数据;
  • POST:将实体提交到指定的资源,通常会造成服务器资源的修改;
  • PUT:上传文件,更新数据;
  • DELETE:删除服务器上的对象;
  • HEAD:获取报文首部,与GET相比,不返回报文主体部分;
  • OPTIONS:询问支持的请求方法,用来跨域请求;
  • CONNECT:要求在与代理服务器通信时建立隧道,使用隧道进行TCP通信;
  • TRACE: 回显服务器收到的请求,主要⽤于测试或诊断。

IP协议的首部结构

TIP

ip 协议的首部结构一共 20 个字节:

第一个4字节:版本号、首部长度、服务类型、总长度

第二个4字节:标识、标志、片偏移

第三个4字节:生存时间、协议、校验和

第四个4字节:源ip地址

第五个4字节:目的ip地址