http协议详解(一)HTTP协议基础

前言

    最近在看一些http的东西,http比较杂,大致整理了一下,用思维导图的方式呈现了出来。我会分几个板块来介绍http协议,具体的板块也在下面的思维导图中标注出来了,尽量以简洁的方式为大家呈现http的内容。初写博客,文中有些纰漏的地方还请大家指点。


模块概述


HTTP协议基础



基本概念

HTTP:超文本传输协议,本质上是一种通信协议。用来将html从服务端传送到客户端。


特点

简单快速:客户向服务器请求服务时,只需传送请求方法和路径。

无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


Request/Response原理

Request请求头


注:这个是用谷歌浏览器的开发者工具访问百度截获的,访问不同的页面请求头/返回头的内容有些许的不一样。下面介绍的是一些通用的内容。


Request请求头通用的包含以下一些内容:

请求方法/请求文件/协议             GET/960.js/HTTP/1.1

请求地址                                   Host:www.baidu.com

用户信息                                   Useragent:内核、系统、浏览器等信息

可接受返回类型                         Accept:显示可以接收的数据类型

来自页面                                   forward:从哪个页面跳转而来

可接受的编码方式                     Accept-encoding                             

可接受的语言                            Accept-language

是否使用缓存                            if-none-match

最后修改时间                            If-Modifiled-Sine

注:最后两项是http的缓存机制,如果允许使用缓存,并且本地缓存的页面与当前请求的页面的最后修改时间一致,则直接使用本地的缓存文件。


Response返回头


注:chrome浏览器截取的部分头信息,通用部分已经被提取掉了,大家要看详细的返回头信息,可以用专业的抓包工具查看。图片只是单纯作为一个栗子。


协议/状态码                       HTTP/1.1 304

服务器软件信息

生成时间                            Date

文件的最后修改时间           If-Modifiled-sine

ETag                                 #和if-none-match一起使用

缓存过期时间                     Expires

缓存机制

代理连接                            keep-alive

注:代理连接这块,是http1.1的特性,是一个改良。因为http是应用层的协议,基于TCP之上,所以对TCP的优化对HTTP同样管用。Keep-alive就是在一个tcp连接之上允许传输多个http请求,所以当一个tcp连接建立的时候,不会在http请求之后断开,而是保持一段时间。


    本次http为大家简单的介绍了一下直观的部分,剩下的博文比较多,博主会尽快整理上传,大家有兴趣的话可以关注后续的详解。


发布了47 篇原创文章 · 获赞 39 · 访问量 21万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览