http协议是你们在互联网中最为熟悉的协议,只要上网你们都会遇到,可是,不少人被问道什么是http协议,http协议的内容是什么就懵了。这里,咱们随便聊聊http协议。html
首先,咱们说说协议。我一直以为“协议”这词不是很好理解,协商之后达成的决议,其实,就是规定,轮不到使用者协商的规定,就像本朝的法律,必须遵照。因此,http协议就是http的规定。后端
http(Hypertext transfer protocol)超文本传输协议,经过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵照的规则。那么网页在输入URL到加载,http究竟作了哪些工做呢?(见下图)浏览器
浏览器负责发起请求和最后的响应请求,服务器接收请求后,处理请求。咱们一步一步来看这个过程,http是如何设定步骤,设置规范的。缓存
一、输入URL。不论是连接仍是地址栏的输入,状况都是同样的。http协议已经规定了URL的格式,经过http协议中的域名或IP找到服务器。服务器
二、找到服务器的同时,会有http的请求发送过来,告诉服务器我求你作什么?http协议规定了发送请求的格式,这个格式有三部分组成请求行、请求头、请求体。cookie
请求行包括请求的方式(get、post或其余)、要求响应的文件、http版本。post
请求头包括本机信息、浏览器信息等等,固然,也包括URL中?后面的参数。如图:url
请求体包括POST传递数据的相关信息,Get方式传值时,请求体为空。spa
三、请求信息发送至服务器之后,服务器会获取传递过来的相关信息进行后端程序的处理。通常经过request.querystring获取URL传递过来的指,经过request.form获取POST传递过来的值,固然,也是能够获取到全部的其余请求过来的信息,如浏览器信息、cookie信息、操做系统信息等。获取相关的数据之后,服务器就会根据程序进行处理。操作系统
四、处理完成之后,服务器会作出响应,向浏览器输出相关信息。http对响应的格式也作出了规定,响应的信息主要包括,响应码、响应头、响应体。
响应码用来标识服务器响应的结果,如咱们常看到的200、404等。大体的分类以下:1开头的表示消息,2开头表示成功,3开头表示重定向,4开头表示失败,5开头表示服务器异常。
响应头记录服务器相关信息如服务器是否启用压缩、服务器为IIS或Ngnix、程序所用服务端语言等等。固然,缓存也是在这里设置的,经过修改响应头能够修改html在本地缓存的状况,如设置浏览器缓存过时的时间。
响应体主要是我看到的html的相关内容了。
完成以上四部操做之后,浏览器就断开了与服务器的数据链接,不能在进行数据传输,若是须要再次进行数据传输,那么一切就要从输入URL开始。
如此,即是一个完整的网页流程,http从中的做用就是对整个流程进行规定,包括执行步骤,每一步的数据格式。只有了解http协议以及网页是如何产生的之后,才能对网页进行更好的控制,例如控制浏览器缓存、经过非浏览器发送http请求、get和post传值的选择,甚至是创建长链接,这些都是以http协议为基础。
底层是TCP/IP
HTTP的底层是TCP/IP。因此GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP连接。GET和POST能作的事情是同样同样的。你要给GET加上request body,给POST带上url参数,技术上是彻底行的通的。