http面试准备

从http的角度深刻分析一次web请求:

1.在浏览器输入一个url地址如www.baidu.comweb

2.请求DNS把这个域名解析成对应的IP地址(DNS域名解析过程看上篇博客)浏览器

3.根据这个IP地址与默认端口80与远程服务器创建Socket链接,而后浏览器根据这个url组装成一个get类型的http请求头,经过outputStream.write发送到目标服务器,服务器等待inputStream.read将数据返回,最后断开这个链接安全

http自己的特色:

http采用无状态的短链接的通讯方式。一般状况下,一次请求就完成了一次数据交互,一般也对应一个业务逻辑,而后此次通讯链接就断开了。
采用这种方式主要是为了可以同时服务于更多的用户,由于当前互联网天天都会处理上亿的用户请求,不可能每一个用户访问一次后就一直保持这个链接服务器

  引伸:什么是http协议无状态协议?如何解决无状态协议?cookie

  无状态协议对于事务处理没有记忆能力。好比A发送一个http请求完成以后,在发送一次客户端不知道他仍是A用户session

  解决:可使用会话技术,如cookie,session,至关于一个通行证同样,第一次访问给A用户发送一个通行证,以后便知道是A用户了,再引伸问你cookie的缺点tcp

 

剩下的都是一些经典问题:

别人写的这两篇博客讲的比较详细post

https://blog.csdn.net/zhangliangzi/article/details/51336564url

http://www.javashuo.com/article/p-ksymsguv-bv.htmlspa

1.常见的http方法有哪些?

2.get与post方法的区别?

3.常见的http状态码?

4.HTTP请求报文与响应报文的格式?

5.HTTP1.1版本新特性?

6.HTTP的缺点与HTTPS?

 关于get请求与post请求:

网上查找到的与本身试验以后获得的结果通常是

1.get去服务器获取资源,参数在url地址栏后面,传输的数据量小,不一样的浏览器对ur长度有限制,没有Post安全,只支持ASCII字符

2.post.....

上述是比较浅显的,看了有篇文章以后,别人作了深刻了解,http是应用层协议,它仍是基于ip/tcp协议的,get/post只是http发送数据的两种格式,get/post能作的事情都是同样的,你要给get带上request body,给post带上url参数,技术上是彻底行的通的。这是一个行为规范,不按规范走让人以为傻乎乎的。

get/post本质上就是TCP链接,并没有差异。可是因为http的规定和浏览器\服务器的限制,致使在应用过程当中体现的不一样

真相是:他们之间的重大区别:详情参考原文:https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3Mw==&mid=100000054&idx=1&sn=71f6c214f3833d9ca20b9f7dcd9d33e4#rd

GET产生一个TCP数据包;POST产生两个TCP数据包

相关文章
相关标签/搜索