HTTP协议与HTTP请求响应

1.HTTP协议

           (1)规定客户端和服务器如何进行交互
           (2)基于TCP/IP协议的应用层协议
    
                 HTTP协议基于请求响应模型
                 一次请求对应一次响应
                请求只能由客户端发出,服务器只能被动的等待请求做出响应
    

              版本:1.0和1.1的区别?

             在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。
             HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。

2.HTTP请求

             请求行
            GET /books/java.html HTTP/1.1
            请求方式
                        七种请求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
                       真正使用的时候:POST/GET
            GET请求方式和POST请求区别在于请求参数在传递的过程中方式不同

             ①如果是GET提交,请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K。

             如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
             GET /mail/1.html?name=abc&password=xyz HTTP/1.1

             ② 如果是POST提交,请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制。
           
           利用form表单提交数据时,form表明明确的声明要用POST提交,这是请求参数就是POST提交
           除此以外所有方式的请求参数都是GET提交。
           


        请求的资源部分的名称
        所遵循的协议版本
    若干请求头
        Accept: */*    
        Accept-Charset: ISO-8859-1
        Accept-Encoding: gzip,compress
        Accept-Language: en-us,zh-cn 
        Host: www.it315.org:80
        If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 
        Referer: http://www.it315.org/index.jsp
        User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
        Cookie
        Connection: close/Keep-Alive   
        Date: Tue, 11 Jul 2000 18:23:51 GMT
    
    实体内容
        

3.HTTP响应

    状态行
        HTTP/1.1 200 OK
        协议版本
        状态码--用来表示本次请求的处理结果的代码


    若干响应头
        Location: http://www.it315.org/index.jsp 
        Server:apache tomcat
        Content-Encoding: gzip 
        Content-Length: 80 
        Content-Language: zh-cn 
        Content-Type: text/html; charset=GB2312 
        Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
        Refresh: 1;url=http://www.it315.org
        Content-Disposition: attachment;filename=aaa.zip
        Transfer-Encoding: chunked  
        Set-Cookie:SS=Q0=5Lb_nQ; path=/search
        ETag: W/"83794-1208174400000"
        Expires: -1 ---- 通知浏览器是否缓存当前资源 ,如果这个头的值是一个以毫秒为单位值就是通知浏览器缓存资源到指定的时间点,如果值是0或-1则是通知浏览器禁止缓存
        Cache-Control: no-cache  -- 通知浏览器是否缓存资源
        Pragma: no-cache    -- 通知浏览器是否缓存资源
            之所以三个头是一个功能,是因为历史原因.不同的浏览器对这三个头支持的不同,一般来说这三个头要同时使用确保不同的浏览器都能实现控制缓存的功能。
            
        Connection: close/Keep-Alive   
        Date: Tue, 11 Jul 2000 18:23:51 GMT


    
    实体内容

    

附:请求头和响应头含义

1)请求(客户端->服务端[request])
    GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)
    Accept: */*(客户端能接收的资源类型)
    Accept-Language: en-us(客户端接收的语言类型)
    Connection: Keep-Alive(维护客户端和服务端的连接关系)
    Host: localhost:8080(连接的目标主机和端口号)
    Referer: http://localhost/links.asp(从来于哪里)
    User-Agent: Mozilla/4.0(客户端版本号的名字)
    Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)
    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间) 
    Cookie(客户端暂存服务端的信息)

    Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)


2)响应(服务端->客户端[response])
    HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)
    302(客户端请求服务端,但服务端没有对应的资源,服务端要客户端再次请求找其它的服务端,即客户端二次请求,重定向) 
    307(客户端请求服务端,但服务端没有对应的资源,服务端自行再次请求找其它的服务端,即客户端一次请求,转发)
    304(客户端请求服务端,此时客户端缓存中有,无需再从服务端下载新的内容,服务端叫客户端自行找缓存,优化)
    500(客户端请求的资源,服务端存在,但在执行时出错)
    Location: http://www.baidu.com(服务端需要客户端访问的页面路径) 
    Server:apache tomcat(服务端的Web服务端名)
    Content-Encoding: gzip(服务端能够发送压缩编码类型) 
    Content-Length: 80(服务端发送的压缩数据的长度) 
    Content-Language: zh-cn(服务端发送的语言类型) 
    Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式)
    Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)
    Refresh: 1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)
    Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)
    Transfer-Encoding: chunked(分块传递数据到客户端)  
    Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据)
    Expires: -1//3种(服务端禁止客户端缓存页面数据)
    Cache-Control: no-cache(服务端禁止客户端缓存页面数据)  
    Pragma: no-cache(服务端禁止客户端缓存页面数据)   
    Connection: close(1.0)/(1.1)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、付费专栏及课程。

余额充值