HTTP简单知识点总结

作者: 熊猫读书营 | 来源:发表于2018-04-27 19:32 被阅读33次

    什么是HTTP协议?

    HTTP协议是互联网上最普遍采用的一种协议,用于客户端和服务端通信,处于TCP/IP四层网络分层模型中的应用层。

    HTTP是一个无状态的协议。
    HTTPS是一个加密传输的协议。

    HTTP传输的基本过程

    在http传输的过程中,客户端向服务器发送一个请求文件。
    最基本的过程是:
    1 客户端连接一个主机;
    2 服务器接收连接,
    3 客户端请求一个文件,
    4 服务器发送一个应答.

    从输入URL到加载页面的过程都发生了什么?

    1.读取缓存,如果缓存没过期则直接显示,否则需要再请求一遍。
    2.解析DNS,将域名解析成对应的ip地址。
    DNS域名解析过程
    ①(若开发过程中有手动添加)先查找本机的host文件。
    ②去运营商的DNS缓存中查找。
    ③如果还是找不到的话就会去根域名服务器中查找(比如域名是.com结尾的话,就会去.com的域名服务器中查找)。
    3.建立TCP连接,三次握手。
    4.发送HTTP请求。
    5.WEB服务器(如Nginx)处理请求并返回。
    6.加载页面。
    7.关闭TCP连接(HTTP1.0默认开启长连接,若一次请求后,一段时间不用,会自动关闭掉连接,这样就可以减少TCP打开与关闭的次数)。

    HTTP是无状态的协议

    1.HTTP是一个不保存状态,即无状态的协议。
    2.HTTP不对请求和响应的通信状态做持久化处理,如用户的登录状态,HTTP不会保存。
    3.每次HTTP请求都是独立的。
    4.跟TCP协议不同,TCP是保持状态的,发送了多少帧都有序列号和确认号等来保存传输状态。

    为了解决HTTP无状态的问题,可以使用Cookie技术

    1.Cookie是保存在客户端的数据,HTTP请求都会带上Cookie。
    2.Cookie和Session的区别
    ①Cookie保存在客户端,Session保存在服务器端
    ②Session安全性更高(因为保存在服务器端的)
    ③保存的数据类型不同,Cookie只能保存字符串
    ④Cookie保存的数据大小有限制,而Session无限制
    ⑤Session对服务器性能的压力更大
    ⑥Session依赖于Cookie,Cookie中包含一个SessionId的标识,服务器通过SessionID来判断来自哪一个客户端。(如果禁用了Cookie,也可以采用url传参的方式)

    HTTP存在的问题

    1.HTTP通信使用的是未加密的明文,内容可能被窃听。
    2.HTTP不会验证通信方的身份,因此可能遭遇伪装。
    3.HTTP无法证明报文的完整性,因此可能遭到篡改。

    可以使用HTTPS协议来解决。HTTPS就是在客户端与服务器端之间加了一条SSL安全通道,通过进行通信加密+安全证书进行安全性完整性保护。

    HTTP1.1性能优化方法

    1.合并css、js文件等,减少图片请求。
    2.将css、js嵌入到页面。
    3.使用持久连接。
    4.图片单独放到cdn服务器。
    5.使用多个子域名等等。

    服务器主动推送消息

    HTTP都是客户端主动发起请求,服务器进行响应的过程。那么想要做到服务器主动推送消息可以使用下列方式:
    1.Ajax轮询,即客户端不断地去请求服务器。(例如打开微博放着不动时有新消息时就会自动刷新出来)
    2.长连接。(连接后一直阻塞在那里,等待服务器响应)



    微信公众号【IT资源社】
    本公众号致力于免费分享全网最优秀的视频资源,学习资料,面试经验等,前端,PHP,JAVA,算法,Python,大数据等等,你想要的这都有,还会分享优质博文,提高你的认知与思维

    IT资源社-QQ交流群:625494093
    要进微信交流群的话加微信:super1319164238
    微信搜索公众号:IT资源社 或者扫描下方二维码直接关注,


    原创文章,转载请注明出处

    相关文章

      网友评论

        本文标题:HTTP简单知识点总结

        本文链接:https://www.haomeiwen.com/subject/ckyxlftx.html