HTTP协议笔记

HTTP协议初探

HTTP介绍

HTTP(hypertext transfer protocl)一个基于请求与响应模式的、无状态的、应用层的协议
    基于传输层TCP的连接方式
版本有HTTP/1.0(单次连接)与HTTP/1.1(持续连接)两种
### HTTP协议特点 ###
    1 支持B/S模式。
    2 简单快速。客户向服务器请求服务时,只需传送请求方法和路径。
        请求方法常有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
    3 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    4 无连接:限制每次连接只处理一次请求。
    5 无状态:无状态是指协议对于事物处理没有记忆能力。
        缺少状态意味着如果后续处理需要前面的信息,则它必须重传。

HTTP协议之详解URL

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
http://host[":"port][abs_path]      
    http表示要通过HTTP协议来定位网络资源
    host表示合法的Internet主机域名或者IP地址
    port指定一个端口号,为空则使用缺省端口80
    abs_path指定请求资源的URI
    如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出
    eg:
        1、输入:www.guet.edu.cn
        浏览器自动转换成:http://www.guet.edu.cn/
        2、http:192.168.0.116:8080/index.jsp 

HTTP协议之请求篇

基于请求-响应模式的协议
    先请求,再出现响应  ---- 请求和响应 一一对应 

http请求由三部分组成,分别是:请求行、头信息、请求体。
    1 请求行格式:请求行:请求中第一行信息
        包括:请求方式、资源路径、HTTP协议版本(CRLF)(GET / HTTP/1.1 )
            HTTP请求方式有七种 : POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
            常用两种: GET:请求获取Request-URI所标识的资源,数据大小限制1K,在URL上显示
                        * http://localhost/day04/url?username=zhangsan
                        * 格式 url?name=value&name=value&name=value... (键值对)
                     :POST:数据在请求体中,不在url上显示 ,没有数据大小限制 
                        * username=zhangsan 请求体和头信息直接存在一个空行 
    2 头信息后述
    3、请求体(略)

HTTP协议之响应篇 ##

在接收和解释请求消息后,服务器返回一个HTTP响应消息。
    响应数据 分为三个部分 :状态行、头信息、响应体
        1 状态行分为三个部分: HTTP协议版本、状态码、描述信息(HTTP/1.1 200 OK)
        常用状态码:
            200 请求处理成功
            302 客户端进行重定向
            304 客户端访问资源没有被修改后,客户端访问本地缓存
            404 访问资源不存在 
            500 服务器内部出错
        2、头信息后述
        3、响应体就是服务器返回的资源的内容 

HTTP协议之消息报头篇(头信息)

HTTP消息报头(key-value )由客户端到服务器的请求和服务器到客户端的响应组成。
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头
    ### 1 请求报头: ###
        Accept: text/html,image/*   ----- 客户端可以接收文件类型 text/html HTML文件 
        Accept-Charset: ISO-8859-1 ----- 客户端可以识别编码字符集  
        Accept-Encoding: gzip -----  客户端可以识别压缩数据格式 gzip是一种压缩格式 
        Accept-Language:zh-cn ----- 客户端浏览器语言 
        Host: www.itcast.com:80  ----- 访问服务器地址 
        If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 
            ----- 该请求的资源在客户端保存最后访问时间 (缓存有关)
        Referer: http://www.itcast.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 ---- 请求时间  

        **重要** Accept-Encoding 、If-Modified-Since 、Referer(防止盗链)
        模拟浏览器访问服务器 获得 refererServlet当中信息
            1) URL 连接 ---- HTTP协议
            2) Socket 连接 ----- TCP协议 
    ### 2 响应报头 ###
        Location: http://www.it315.org/index.jsp ---- 重定向地址 结合 302 一起使用 
            * 重定向 两次请求 两次响应 
        Server:apache tomcat ----- 服务器类型
        Content-Encoding: gzip ---- 设置响应数据压缩格式   ---- 请求 Accept-Encoding 
            * 如果响应数据经过压缩 传输体积更小,性能更好 
        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   
            * 对于动态程序,经常修改, 禁止浏览器缓存内容
        **重点** 302结合Location进行重定向 、在tomcat配置gzip压缩 、tomcat缓存策略 、禁止浏览器缓存 

注意事项

1、出现输入错误,则请求不会成功。
2、报头域不分大小写。
3、更深一步了解HTTP协议,可以查看RFC2616,在http://www.letf.org/rfc上找到该文件。
4、开发后台程序必须掌握http协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值