http协议概述

作者: miracle9312 | 来源:发表于2017-05-31 10:52 被阅读0次

    了解web及网络基础

    TCP/IP的分层管理:1、应用层:决定了向用户提供应用服务时通信的活动,该层包含的协议有:FTP(文件传输协议),DNS(域名系统)以及http;2、传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输,该层包含的协议有:TCP(传输控制协议)和UDP(用户数据报协议);3、网络层:网络层用来处理在网络上流动的数据包,该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方,该层包含有IP协议;4、链路层:用来处理链接网络的硬件部分。

    如何理解TCP/IP的分层管理:链路层是实实在在的管道,网络层负责管道铺设方案,传输层负责将管道内要传送的物资进行统一的打包,而应用层就是那些要被传送的物资了。

    TCP协议三次握手:1、目的:确保数据能到达目标;2、过程:发送端首先发送一个带SYN标志的数据包给对方;接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后发送端再回传一个带有ACK标志的数据包,代表握手结束。

    一个请求发送的全过程:客户端发送请求=>dns域名解析=>http协议生成请求http报文=>TCP协议,分割请求报文,生成数据包=>IP协议搜索对方地址,一边中转一边传送=>TCP协议报文重组=>http协议,对web服务器请求的内容进行处理=>服务器根据请求返回资源=>经过同样的过程返回数据给客户端。

    简单的http协议

    请求报文的构成:

    响应报文的构成:

    理解无状态的http:http自身不对请求和响应之间的通信状态进行保存,协议对于发送过的请求或响应都不做持久化处理,无状态-有状态的转化可以通过cookie实现

    http/1.0和http/2.0支持的方法:

    理解持久连接和管线化:持久连接可以实现一次连接处理多个请求,管线化可以实现并行处理多个请求。

    http报文:1、主要构成部分:请求行,状态行,请求首部,响应首部,通用首部,实体首部,报文主体;2、用于对内容进行编码的头部:gzip,compress,deflate(以上都常用于压缩文件),identity(不进行编码);3、返回多部分对象集合的头部:multipart/form-data,multipart/byteranges;4、获取部分范围内容的请求头部:range;5、用于内容协商的首部字段:Accept,Accept-Charset,Accept-Encoding,Accept-Language,Content-Language

    http状态码

    状态码类别:

    200:表示从客户端发来的请求在服务器被正常处理了;204:表示服务器已经成功处理请求,但返回的响应报文不含实体的主体部分;206:表示客户端进行了范围请求,服务器成功执行了这部分请求;301:永久重定向;302:临时重定向;303:临时重定向,并规定用get方法访问资源;304:资源从缓存中获取;307:临时重定向;400:请求报文存在语法错误;401:用户认证失败;403:未获得文件系统的授权或访问权限出现问题;404:未找到资源;500:服务端在执行请求时发生错误;503:服务器暂时存在超负荷或停机状态

    与http协作的web服务器

    代理:1、接受由客户端发送的请求并转发给服务器,同时也接受服务器返回的响应并转发给客户端;2、代理服务器的作用:利用缓存技术减少带宽和流量,组织内部针对特定网站的访问控制。网关:1、转发其他服务器通信数据的服务器,接收从客户端发过来的请求时,就像自己拥有资源的源服务器一样对请求进行处理。隧道:建立起一条与其他服务器的通信线路,会使用ssl加密手段进行通信,目的是确保客户端能与服务器进行安全的通信

    http首部

    通用首部:cache-control: public:表示其他用户也可以利用缓存;cache-control:private:缓存服务器会对该特定用户提供资源缓存的服务;cache-control:no-cache:客户端将不会姐搜缓存过的响应;cache-control:no-store:比no-cache更高级的禁用缓存策略;cache-control:max-age:自请求发送起,资源的缓存有效期;connection:不再转发的首部字段名:可控制不在转达给代理的首部字段;connection:keep-alive:建立持久连接;Date:GMT时间:创建报文的日期和时间;Upagrade:协议名:用于检测HTTP协议及其他协议是否可使用更高的版本进行通信。

    请求首部:Accept:文件类型:通知服务器,用户代理能后处理的媒体类型及媒体类型的相对优先级;Accept-Charset:字符集:用来通知服务器,用户代理支持的字符集及字符集的 相对优先顺序;Accept-Encoding:编码类型:告知服务器用户代理支持的内容编码及内容编码的优先级顺序;Accrpt-Language;Authorization;Host;If-Match;If-Modified-Since;Max-Forwards;Range;Refer;User-Agent;

    响应首部:Accept-Ranges:bytes/none;Etag;

    实体首部:Content-Length;Content-Range;Content-Type;

    https

    http的缺憾:1、无法认证通信双方的身份;2、本身没有对通信内容进行加密的机制;3、无法建立安全的通信线路;4、无法验证报文的完整性

    如何解决:1、通过SSL建立安全的通信线路,并通过验证证书的方式确认双方的身份;2、通过MD5加密和SHA-1散列值的方式来保证报文的完整性;3、通过密钥来对报文内容进行加密

    ssl通信的建立过程:

    用户身份认证

    BASIC认证:通过输入密码的方式来确认是否为用户本人的认证方式;

    DIGEST认证:客户端通过由服务器发送的质询码产生唯一的响应码,进行客户端认证’

    SSL双因素认证:在ssl通信连接的保护下,进行BASIC和DIGEST认证;

    cookie:保存用户的认证状态,以解决http的无状态特性

    基于http功能的追加协议

    http的性能瓶颈:1、每次都要发送亢长重的首部;2、服务器有内容更新时不能主动向客户端推送;3、报文内容没有统一的压缩方式

    ajax:实现网页局部更新以及javascript的异步操作

    comet:实现服务器的主动推送

    spdy协议:1、支持服务器主动推送;2、并发处理多个请求;3、支持请求首部的压缩

    websocket(全双工双向通信):1、支持客户端向服务器端,以及服务器端向客户端的主动推送;2、精简的请求和响应首部

    web的攻击技术

    跨站脚本攻击:通过在url中输入脚本,进而获取文档中的信息如cookie等,然后向攻击者服务器发送这些信息;

    sql注入攻击:在进行数据库操作时,有时会通过获取表单中的数据,并将这些数据作为参数进行数据库操作;只要攻击者在表单输入是输入一些特殊的数据库操作符,便可达到操作数据库的目的;

    http首部注入攻击:在进行http请求时,有时会将表单中的数据作为首部参数进行请求操作;此时攻击者只要在表单中输入一些特殊的字符,便可操作http请求;

    强制浏览:服务器上一些不进行公开的文件,会通过隐蔽文件url的方式进行访问限制,此时攻击者通过某些试错的手段得到这些文件url,便可以访问,造成一些保密信息的泄露;

    会话劫持:攻击者通过xss攻击或其他方式得到用户的会话id,便可以伪装成用户的身份;

    跨站点请求伪造:用户访问某网站时已经处于登录状态,攻击者此时诱惑用户点击某个链接便可以以用户的身份进行一些特殊的操作。

    相关文章

      网友评论

        本文标题:http协议概述

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