The difference between get and post methods in HTTP request

osc_bvincwvq 2020-11-08 12:11:47
difference post methods http request


One 、 Principle difference

Generally, we enter a website address in the browser to visit the website GET request ; Again FORM In the form , Can be set by Method Specify the submission method as GET perhaps POST submission , The default is GET submission .

HTTP Defines different ways to interact with the server , The most basic four of them :GET,POST,PUT,DELETE,HEAD, among GET and HEAD It's called a security method , Because use GET and HEAD Of HTTP The request doesn't produce any action . No movement means GET and HEAD Of HTTP The request doesn't produce any results on the server . But security methods don't mean that nothing happens , The security method here simply means that the information will not be modified .

according to HTTP standard ,POST Requests that may modify resources on the server . For example, Zhihu writes articles , A user submits an article or a reader submits a comment by POST Request to implement , Because re submit articles or comments, resources after submission ( That is, a page ) different , Or the resources have been modified , These are “ Unsafe methods ”.

Two 、 The most intuitive difference when using

The most intuitive difference is GET Include the parameter in URL in ,POST adopt request body Pass parameters .

get request :
http In request get and post Differences in methods

post request :
http In request get and post Differences in methods

3、 ... and 、 Why? get Than post faster

1.post The request contains more request headers

because post Need to be in the requested body Part contains data , So there will be a few more first fields in the data description section ( Such as :content-type), It's very small .

2. The most important one ,post Send the request to the server for confirmation before receiving the data , And then really send the data

post Process of request :
(1) Browser request tcp Connect ( The first handshake )
(2) The server promised to do tcp Connect ( The second handshake )
(3) Browser confirmation , And send the post Request header ( The third handshake , This message is relatively small , therefore http The first data transmission will take place at this time )
(4) Server return 100 Continue Respond to
(5) Browser sends data
(6) Server return 200 OK Respond to





get Process of request :
(1) Browser request tcp Connect ( The first handshake )
(2) The server promised to do tcp Connect ( The second handshake )
(3) Browser confirmation , And send the get Request headers and data ( The third handshake , This message is relatively small , therefore http The first data transmission will take place at this time )
(4) Server return 200 OK Respond to
in other words , Visual measurement get The total cost of post Of 2/3 about , There is no justification for this statement , Some netizens have tested it on the Internet .




3.get Will cache the data , and post Can't

You can do a short test , Use ajax use get Method request static data ( such as html page , picture ) When , If the data transmitted twice is the same , The time consumed after the second time will be 10ms within (chrome test ), and post It takes almost every time . After testing ,chrome and firefox If you detect get Static resources are requested , It will cache , If it's data , Will not cache , however IE Everything will be cached , Of course , No one should use post Go get static data , Anyway, I haven't seen .

Four 、 How to answer the interview get and post The difference between

(1)post More secure ( Not as url Part of , Will not be cached 、 Save in server log 、 And browser browsing records )

(2)post The data sent is bigger (get Yes url Length limit )

(3)post Can send more data types (get Can only send ASCII character )

(4)post Than get slow

(5)post Used to modify and write data ,get Generally used for search sorting and filtering operations ( TaoBao , Alipay's search queries are get Submit ), The purpose is to obtain resources , Reading data

5、 ... and 、 test get and post Requested tools

get and post Requests generally use interface testing tools , I usually use interface testing tools :apipost and jmeter.

apipost Is a domestic interface testing tool and interface document generation tool , It can meet our daily work requirements for interface testing and interface document generation . Interface documents can also support the generation of various formats , There's an online version 、markdown、word Version and other formats of interface documents .

http In request get and post Differences in methods

jmeter Interface testing and performance testing can be done , But for simple interface testing jmeter It doesn't work apipost Easy to use .jmeter The point is stress testing , Stability testing and load testing . Aiming at the stability of the interface and program, an interface testing tool is designed with software performance as the main function and interface test as the auxiliary .

http In request get and post Differences in methods

Tool download address :https://www.apipost.cn/

版权声明
本文为[osc_bvincwvq]所创,转载请带上原文链接,感谢

  1. [front end -- JavaScript] knowledge point (IV) -- memory leakage in the project (I)
  2. This mechanism in JS
  3. Vue 3.0 source code learning 1 --- rendering process of components
  4. Learning the realization of canvas and simple drawing
  5. gin里获取http请求过来的参数
  6. vue3的新特性
  7. Get the parameters from HTTP request in gin
  8. New features of vue3
  9. vue-cli 引入腾讯地图(最新 api,rocketmq原理面试
  10. Vue 学习笔记(3,免费Java高级工程师学习资源
  11. Vue 学习笔记(2,Java编程视频教程
  12. Vue cli introduces Tencent maps (the latest API, rocketmq)
  13. Vue learning notes (3, free Java senior engineer learning resources)
  14. Vue learning notes (2, Java programming video tutorial)
  15. 【Vue】—props属性
  16. 【Vue】—创建组件
  17. [Vue] - props attribute
  18. [Vue] - create component
  19. 浅谈vue响应式原理及发布订阅模式和观察者模式
  20. On Vue responsive principle, publish subscribe mode and observer mode
  21. 浅谈vue响应式原理及发布订阅模式和观察者模式
  22. On Vue responsive principle, publish subscribe mode and observer mode
  23. Xiaobai can understand it. It only takes 4 steps to solve the problem of Vue keep alive cache component
  24. Publish, subscribe and observer of design patterns
  25. Summary of common content added in ES6 + (II)
  26. No.8 Vue element admin learning (III) vuex learning and login method analysis
  27. Write a mini webpack project construction tool
  28. Shopping cart (front-end static page preparation)
  29. Introduction to the fluent platform
  30. Webpack5 cache
  31. The difference between drop-down box select option and datalist
  32. CSS review (III)
  33. Node.js学习笔记【七】
  34. Node.js learning notes [VII]
  35. Vue Router根据后台数据加载不同的组件(思考->实现->不止于实现)
  36. Vue router loads different components according to background data (thinking - & gt; Implementation - & gt; (more than implementation)
  37. 【JQuery框架,Java编程教程视频下载
  38. [jQuery framework, Java programming tutorial video download
  39. Vue Router根据后台数据加载不同的组件(思考->实现->不止于实现)
  40. Vue router loads different components according to background data (thinking - & gt; Implementation - & gt; (more than implementation)
  41. 【Vue,阿里P8大佬亲自教你
  42. 【Vue基础知识总结 5,字节跳动算法工程师面试经验
  43. [Vue, Ali P8 teaches you personally
  44. [Vue basic knowledge summary 5. Interview experience of byte beating Algorithm Engineer
  45. 【问题记录】- 谷歌浏览器 Html生成PDF
  46. [problem record] - PDF generated by Google browser HTML
  47. 【问题记录】- 谷歌浏览器 Html生成PDF
  48. [problem record] - PDF generated by Google browser HTML
  49. 【JavaScript】查漏补缺 —数组中reduce()方法
  50. [JavaScript] leak checking and defect filling - reduce() method in array
  51. 【重识 HTML (3),350道Java面试真题分享
  52. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  53. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  54. [re recognize HTML (3) and share 350 real Java interview questions
  55. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  56. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  57. 【重识 HTML ,nginx面试题阿里
  58. 【重识 HTML (4),ELK原来这么简单
  59. [re recognize HTML, nginx interview questions]
  60. [re recognize HTML (4). Elk is so simple