1. HTTP协议
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议。所有的www
文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
2. HTTP的get和post请求
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:get
和 post
。
get
: 从指定的资源请求数据;post
:向指定的资源提交要被处理的数据。
2.1 get请求
使用get
请求,参数是在请求的url
中传递的。
https://www.bilibili.com/video/BV1t4411e7LH/?p=11 // ?后面的p=11就是get请求的参数
get
请求的特点
get
请求还具有以下特点:
get
请求可以被缓存;get
请求保留在浏览器的历史记录中;get
请求可以被收藏为书签;get
请求在浏览器回退时是无害的。
2.2 post请求
使用post
请求,参数是在请求的消息体中传递的。
Request URL: https://passport.bilibili.com/qrcode/getLoginInfo
Request Method: POST
Remote Address: 120.92.168.51:443
request body: // post请求参数
oauthKey: 6f8d790604914645afdcddff00b329aa
gourl: https://www.bilibili.com/video/BV1t4411e7LH/?p=11
post
请求的特点
post
请求还具有以下特点:
post
请求不会被浏览器主动缓存,除非手动设置;post
请求不会保留在浏览器的浏览历史中;post
请求在浏览器回退时会再次提交。
2.3 get请求和post请求的区别
HTTP协议是应用层的协议,底层都是使用的TCP/IP
传递数据包。作为HTTP协议的不同提交方式的get
请求和post
请求,底层也是使用的TCP/IP
。但是,两者还是有所区别的:
- 对于
get
请求,浏览器会把http header
和http data
一并发送出去,服务器响应200
; - 而对于
post
请求,浏览器先发送http header
,服务器响应100
,浏览器再发送http data
,服务器响应200
。
简单的说就是:get
请求产生1
个tcp
数据包;post
请求产生2
个tcp
数据包。
2.4 get请求和post请求参数长度的限制
HTTP协议规范对get
请求和post
请求参数长度没有进行大小限制,真正起限制作用的是浏览器和服务器的程序处理能力,具体的长度依赖于各个浏览器厂家的规定或者可以根据 web 服务器的处理能力来设定。