HTTP中GET与POST的区别?

一、HTTP中GET与POST的区别
1、书签和浏览历史记录不同
GET:网址参数与网址一起存储POST:保存的网址不带网址参数2、缓存和服务器日志文件不同
GET:URL 参数以未加密的方式存储POST:网址参数不会自动保存3、浏览器刷新/返回按钮时的行为不同
GET:不再发送网址参数POST:浏览器警告必须重新发送表单数据4、数据类型
GET:仅 ASCII 字符POST:除 ASCII 字符外的二进制数据5、数据长度不同
GET:限制为 URL 的最大长度(2048 个字符)POST:无限6、是否可见
GET:在地址行中对用户可见POST:对用户不可见二、HTTP中的GET方法
GET方法用来请求访问已被URL识别的资源。指定的资源经服务器端接续后返回内容。也就是说,如果请求的资源是文本,那就保持原样返回;如果像是CGI(Conmmon Gateway Interface,通用网关接口)那样的程序,则返回执行后的输出结果。
get请求的过程:
浏览器请求tcp连接(名列前茅次握手)服务器答应进行tcp连接(第二次握手)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行名列前茅次数据发送)服务器返回200 OK响应,也就是说,目测get的总耗是post的2/3左右。三、HTTP中的POST方法
POST方法用来传输实体的主体虽然用GET方法也可以进行传输实体的主体,但一般不用GET方法进行传输,而是用POST方法,虽说POST的功能与GET很相似,但是POST的主要目的并不是获取相应的主体内容。
post请求的过程:
浏览器请求tcp连接(名列前茅次握手)服务器答应进行tcp连接(第二次握手)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行名列前茅次数据发送)服务器返回100 Continue响应浏览器发送数据服务器返回200 OK响应四、HTTP协议概述
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。
通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如”HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其它信息。
延伸阅读1:HTTP状态码
1xx消息——请求已被服务器接收,继续处理2xx成功——请求已成功被服务器接收、理解、并接受3xx重定向——需要后续操作才能完成这一请求4xx请求错误——请求含有词法错误或者无法被执行5xx服务器错误——服务器在处理某个正确请求时发生错误