HTTP是一种互联网上应用最广泛的网络协议,所有的WWW文件都必须遵守这个标准。它的设计目的是保证客户机和服务器之间的通信。 在客户机和服务器请求的过程中,用于交互的信息我们称之为HTTP报文,分为请求报文和响应报文。 请求报文包括请求行、请求头、空行、请求体;
以下是请求报文 POST /products/creat HTTP/1.1 (请求行,包括请求方法/url/HTTP协议及版本) Host: 10.8.155.95:3333 Content-Length: 32 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36 Cache-Control: no-cache Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop name: xiaobai Postman-Token: 3b2fdd3e-fc98-942c-4c71-a517d04824d1 Content-Type: application/json Accept: */* Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: keep-alive (请求头) (空行) {"name":"xiaohei","age":16} (请求体)响应报文包括状态行、响应头、空行、响应体。
以下为响应报文 HTTP/1.1 200 OK (状态行,包括HTTP协议版本、状态码和状态描述) X-Powered-By: Express Content-Type: application/json; charset=utf-8 Content-Length: 40 ETag: W/"28-hhZqaX1+L6z2I4crOZ2ERE5/zmQ" Date: Wed, 22 May 2019 12:11:50 GMT Proxy-Connection: keep-alive (响应头) (空行) {"code":"success","info":"添加成功"} (响应体) 从安全角度来讲,GET请求查询字符串会显示在地址栏的网址中,所以不建议使用GET请求提交敏感数据,一般只用来获取数据;POST请求因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以POST请求方式相对来说安全,但也不是最安全的方式。如需要传送敏感数据,必须使用加密方式传输。GET请求点击刷新页面没有太大影响,可以添加书签;而POST会重复提交数据,不能添加书签。GET请求数据类型有限制,只允许ASCII字符类型;POST请求数据类型没有限制,也可以是二进制数据,编码类型为application/x-www-form-urlencoded,支持的编码类型为application / x-www-form-urlencoded或multipart / form-data。