http和socket的区别:
socket和http都能用于网络上的通信。
那既然有socket那么为什么需要http呢?
socket一般用于比较即时的通信和实时性较高的情况,最常见的就是QQ,微信等聊天和实时推送。
但是长时间网络连接耗电量快,对于手机来讲,手机网络情况复杂,进出电梯丢信号,需要实现复杂的重传。
手机网络连接是电信运营商的网关,网关不允许长时间连接。
然而http一般用于实时性要求不那么高的情况,比如信息反馈,图片上传,获取新闻信息。
http是一个无状态,无连接的协议。只能由客户端主动发起请求,服务器回送响应。
一个完整的HTTP请求过程,通常有下面7个步骤:
1.建立TCP连接
2.Web浏览器向Web服务器发送请求命令
3.Web浏览器发送请求头信息
4.Web服务器应答
5.Web服务器发送应答头信息
6.Web服务器想浏览器发送数据
7.Web服务器关闭TCP连接
一个HTTP请求一般由四部分组成:
1.HTTP请求的方法或动作,比如是GET还是POST请求
2.正在请求的URL,总得知道请求地址是什么吧
3.请求头,包含一些客户端环境信息,身份证信息等
4.请求体,也就是请求正文,请求正文可以包含提交的查询字符串信息,表单信息等
HTTP请求:
当我们在浏览器中输入一个URL然后回车,就会获取我们想要的资源。执行起来so easy!得到效果so amazing!
它是怎样发生的呢?
第一步我们在浏览器中输入baidu.com然后按下回车键。
第二步DNS解析出IP地址