Http协议

Http协议:客户端与服务器建立连接后,若想获取web服务器中的某个资源,需要遵守一定的通信格式,Http协议用于定义客户端与web服务器通信的格式。

http协议的特征:

  • 基于TCP传输协议【osi七层网络体系结构 物理层 数据链路层 网络层 传输层 表示层 会话层 应用层】TCP协议是传输层协议,而http协议是应用层的协议,可以说http协议比TCP协议更高级。
  • 默认80端口
  • 基于请求相应模式的协议【先出现请求,后出现响应】


http协议的内容:


【附:TCP采用三次握手来建立连接:

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认

第二次握手:服务器收到syn包,必须确认客户的syn(ack+1),同时自己也发送一个syn(syn=k)包,即syn+ack包,此时服务器进入SYN_RECV状态

第三次握手:客户端收到服务器端的syn+ack包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端与服务器端进入ESTABLISHED状态,完成三次握手


Http1.0与Http1.1的区别1
1.0中客户端与服务器建立连接后,一次只能获得一个资源
1.1中一次连接,可以连续获得多个资源

Http(Hypertext transfer protocal(超文本传输协议))是TCP/IP协议的一个应用层协议,用于定义web客户端与web服务器传输数据的过程。

Http与html的关系
http是通信协议 规定数据传输的格式 html是网页设计语言,可以理解为是一种静态数据
    
http协议:基于请求响应的协议。

1.请求
    请求的完整格式包括三部分 1.请求行 2.头信息 3.请求体
    
    请求行:请求中的第一行信息【包含三部分:1.请求方式 2.请求资源的路径 3.协议版本】
        请求方式有七种:POST[数据在请求体中,没有数据大小的限制] GET HEAD OPTIONS DELETE TRACE PUT
        请求体和头信息之间存在一个空行
    头信息:很多的key-value值
        Accept:text/html,image/*     [客户端可以接受的文件类型,HTML文件,任意格式图片]
        Accept—Charset:ISO-8859-1    [客户端可以识别的编码字符集]
        Accept-Encoding:gzip         [客户端可以识别的压缩格式]
        Accept-Language:zn-ch        [客户端浏览器的语言]
        Host                         [服务器地址]
        If-Modified-Since:Tue,11 Jul 2000 18:25:34 CMT [该请求的资源在客户端保存的最后访问时间]
        Referer:http://www.baidu.com/index.jsp [上一次访问页面地址] 《防止客户盗链数据【盗链:其他数据直接获取其他网站的数据】》
        User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) ---- 客户端浏览器类型版本
        Connection: close/Keep-Alive    ---- 该次请求连接后,连接是保持还是关闭 1.0 关闭 1.1 保持
        Date: Tue, 11 Jul 2000 18:23:51 GMT ---- 请求时间
        
        模拟客户端访问服务器,获取服务器中一个servlet的信息:
        1、url连接:使用http协议
        2、socket连接:使用的是tcp协议
        
    请求体:存放客户端提交post请求数据
      就是post方式提交的表单数据以key-value的形式放在请求体中
    
2.响应
    响应的数据分为3个部分 1.状态行 2.头信息 3.响应体
    
    状态行:分为三个部分【1.http协议版本 2.状态码 3.原因描述】
    
    头信息【响应头】
        Location: http://www.it315.org/index.jsp   [重定向地址,俩次请求,俩次响应]
        Server:apache tomcat ----- 服务器类型  
        Content-Encoding: gzip ---- 设置响应数据压缩格式   ---- 请求 Accept-Encoding
        * 如果响应数据经过压缩 传输体积更小,性能更好

        没有压缩情况下  13605字节  http://localhost/docs/
        如何设置tomcat压缩
        * 通过设置 tomcat/conf/server.xml 设置响应数据压缩
        <Connector port="80" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" compressableMimeType="text/html,text/xml,text/plain" compression="on"/>
        * 清除浏览器缓存,重启tomcat
        4244字节 http://localhost/docs/

        Content-Length: 80  ----- 响应数据长度
        Content-Language: zh-cn  ----- 响应数据语言
        Content-Type: text/html; charset=GB2312  ----- 响应数据类型
        * 数据类型采用Mime协议规定类型 html文件 ---- text/html、 jpg文件---- image/jpeg
        * 在 tomcat/conf/web.xml 中查看文件mime类型

        Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  ----- 和请求头信息 If-Modified-Since一起使用,控制服务器缓存
        * ETag: W/"13397-1184876416000" tomcat生成Etag 13397文件大小 1184876416000文件最后修改时间(精确毫秒)
        * 客户端下次请求时通过If-None-Match 携带刚刚 Etag信息

        Refresh: 1;url=http://www.it315.org ----- 网页自动跳转
        Content-Disposition: attachment; filename=aaa.zip ----- 文件下载时指定文件附件名称

        控制该程序在客户端不缓存
        Expires: -1
        Cache-Control: no-cache  
        Pragma: no-cache   
        * 对于动态程序,经常修改, 禁止浏览器缓存内容

        Connection: close/Keep-Alive   ---- 响应后连接是否关闭
        Date: Tue, 11 Jul 2000 18:23:51 GMT --- 响应时间


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值