httpd 8中请求方法:
get,post,HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS .
各种方法的作用:
请求方法 | 描述 |
GET | 请求指定的页面信息,包括响应头和响应体 |
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。一般用于检查文件的信息是否更新。 |
POST | 向服务器提交数据,比如评论; |
PUT | 客户端向服务器更新数据 |
DELETE | 请求服务器删除指定的页面 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
get和post的区别
1,请求报文格式:
get URL可见:
使用get方法,http的请求行有请求方法,URL和http版本。
GET /search/users?q=JakeWharton HTTP/1.1
Host: api.github.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: _octo=GH1.1.1623908978.1549006668; _ga=GA1.2.548087391.1549006688; logged_in=yes; dotcom_user=GoMarck; _gid=GA1.2.17634150.1554639136; _gat=1
post 不可见:
使用post方法,http的请求行只有post方法和http版本,没有URL.
POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive
name=Professional%20Ajax&publisher=Wiley
2,参数的传递格式:
get方法如果要传递参数,参数需要拼接到url中传递。
post如果需要传递参数,post的参数拼接到消息体中进行传输。
3,缓存性:
get请求是可以缓存的
post请求不可以缓存
因为get请求只是请求,那么第一次请求的数据就可以缓存在客户端,下次再次请求时就可以直接获取,而不用到服务端获取;但是post请求用于新增数据,所以不可缓存。
4,后退页面的反应
get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求
5,传输数据的大小
get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。
6、安全性
get是安全的,post是不安全的,因为链接
7、http消息头和消息体发送方式(数据包)
GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
以上信息来源: