聊一聊大家貌似都挺熟悉的http请求

本文详细介绍了HTTP协议的基础知识,包括HTTP1.0与HTTP1.1的区别、请求方法、RESTFUL规范的应用,以及HTTP与TCP的区别等内容。此外还讨论了如何解决PUT请求不被服务器正确处理的问题,并介绍了WebSocket技术提升网页应用性能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP,HyperText Transfer Protocol,超文本传输协议。现在大家每天都跟它打交道,但是不一定对它很了解。

一、HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

        HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

       标准的HTTP请求格式是这样的:

       请求行:请求类型 访问资源 协议版本

       请求头:key:value集合,用于描述请求的一些属性,比如主机,字符等

       请求体:比如拼接的参数键值字符串

二、RESTFUL规范要求,获取数据用GET,添加数据用POST,修改数据用PUT,删除数据用DELETE。HEAD请求类似于GET,但是返回信息会把body丢弃掉只返回响应头信息。OPTIONS用户查看服务器性能。

现在很多服务器由于PUT请求不常用,对PUT请求的支持比较弱。如果在put请求中传参,只能通过拼接在URL后面这种方式,即get的方式。如果想用form表单的方式传参,把参数放在body中,服务器是不会处理的。

有三种解决方法:1)修改服务器配置,比如Tomcat中可以这样改:

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000"
           redirectPort="8443"
           parseBodyMethods="POST,PUT"
           URIEncoding="UTF-8" />

2)使用spring提供的过滤器:

    <filter>
        <filter-name>httpPutFormContentFilter</filter-name>
        <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>httpPutFormContentFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3)干脆将PUT请求改成POST请求。

三、HTTP的本质是TCP,不同之处在于,TCP是长连接,HTTP是一次性连接,一次请求完成后即关闭连接。现在出现的websocket技术,HTTP请求完成后不关闭连接,后续访问还是用这一个链接,减少握手次数,提高传输速率。HTTP页面加载时是先下载html文档(响应报头,状态码200),同时使用缓存;建立文档树,根据标记请求所需指定MIME类型的文件(比如css、js)。浏览器会限制单次请求同一服务器所访问的文件数,如果页面包含的css,js文件较多,浏览器会分批下载文件,这无疑会延长页面的响应时间。现在网站一般采用压缩合并文件,或者使用CDN,把文件放在不同的服务器上等策略,来提高页面响应速度。

四、未完待续。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值