1. Http协议是怎么工作的
http协议定义了web客户端如何从web服务器请求web页面,以及服务器如何把web页面传送给客户端
1.1客户端连接到web服务器
一个http客户端,通常是浏览器,与web服务器的http(端口默认是80),建立一个TCP套接字连接
1.2发送http请求
通过tcp套接字,客户端向web服务器发送一个文本的请求报文,一个请求报文由请求头、请求行、空行以及请求数据四部分组成
1.3服务器接收到请求并返回http响应
web服务器解析请求,定位请求资源,服务器将资源复本写到TCP套接字,由客户端读取,一个响应由状态行、响应头部、空行(请求空行)和响应数据(请求体)四部分组成,
1.4释放连接TCP
若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接,若connection模式为keepalive,则连接会保持一段时间,在这段时间内可以继续接收请求
1.5客户端浏览器解析HTML内容
2. Http协议中的get和post的区别
2.1从参数传递方面:
Get请求的参数是直接拼接在地址栏url的后面,post请求的参数是放在请求体中
2.2从长度方面:
Get请求有具体的请求大小限制,一般不超过1024bytes,而post理论上没有,但是浏览器一般有界限
2.3从安全方面:
Get请求相比较于post,数据明文显示在地址URL中,所以安全性和私密性不如post
总结:
从本质上来说,二者都是TCP连接,并无实质上的区别,但是由于http/浏览器的限定,导致他们在应用过程中有一定的区别,Get产生一个数据包,Post产生两个数据包,对于Get请求,浏览器会把http header和data一并发出去,服务器响应200,而对于Post,浏览器会先发送header,服务器会响应100continue,浏览器再发送data,服务器响应200
3. Http请求方法和响应代码
注:红叉是比较危险的HTTP方法,错误的配置很容易导致安全问题,一般情况下不建议启用。