HTTP属于网络哪一层协议?
属于应用层通信协议。
HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。
HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
GET和POST两种基本请求方法的区别?
本质就是TCP链接,并无差别。但由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同
- GET参数通过URL传递,POST放在Request body中
- GET比POST更不安全。因为参数直接暴露在URL上,所以不能用来传递敏感信息
- GET请求参数会被完整保留在浏览器历史记录中,而POST中的参数不会被保留
GET请求在URL中传递的参数是有长度限制的,而POST没有
GET产生一个TCP数据包,POST产生两个TCP数据包
网络环境好的情况下,发一次包和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点状态码301和302的区别?
字面上的区别就是301是永久重定向,而302是临时重定向。 当然,他们之间也是有共同点的,就是用户都可以看到url替换为了一个新的,然后发出请求。
301适合永久重定向
301比较常用的场景是使用域名跳转。
比如,我们访问 http://www.baidu.com 会跳转到 https://www.baidu.com,发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。
注意: 301请求是可以缓存的, 即通过看status code,可以发现后面写着from cache。
或者你把你的网页的名称从php修改为了html,这个过程中,也会发生永久重定向。
302用来做临时跳转
比如未登陆的用户访问用户中心重定向到登录页面。
访问404页面会重新定向到首页。http和pttps协议所用的端口是什么?有哪些区别?
HTTPS和HTTP的区别:https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。请求头中的Connection: keep-Alive代表什么意思?
什么是keep-alive?
keep-alive 是客户端和服务端的一个约定,如果开启 keep-alive,则服务端在返回 response 后不关闭 TCP 连接;同样的,在接收完响应报文后,客户端也不关闭连接,发送下一个 HTTP 请求时会重用该连接。
