HTTP相关概念、Cookie和Session、一次完整HTTP请求

本文详细介绍了HTTP的基本概念,包括URI、请求和响应报文、HTTP方法,以及HTTP状态码。重点讲解了GET和POST的区别,并讨论了Cookie和Session的用途、创建过程以及它们之间的选择。还涵盖了HTTP缓存、HTTPS的安全性和HTTP/1.1的新特性。最后,概述了一次完整的HTTP请求的步骤。
摘要由CSDN通过智能技术生成

HTTP

一、基本概念

URI 统一资源标识符

Web上可用的每种资源 -HTML文档、图像、视频片段、程序等 - 由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。

包含URL (统一资源定位符) 和URN (统一资源命名)

URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。

请求和响应报文

1.请求报文

HTTP协议使用TCP协议进行传输,在应用层协议发起交互之前,首先是TCP的三次握手。完成了TCP三次握手后,客户端会向服务器发出一个请求报文。请求报文的格式如下图抓包所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bWBtTff8-1585216255133)(C:\Users\wangqun\AppData\Roaming\Typora\typora-user-images\image-20200120005210938.png)]

前三行为请求行,其余部分称为request-header。请求行中的method表示这次请求使用的是get方法。请求方法的种类比较多,如option,get,post,head,put,delete,trace等,常用的主要是get,post。Get表示请求页面信息,返回页面实体;post是请求服务器将指定文档作为请求的url中的从属实体,简单说,我们常用的在网页中填写表单然后申请等动作就是使用了post方法,填写用户名密码登录站点就使用了get方法

2.响应报文

当收到get或post等方法发来的请求后,服务器就要对报文进行响应。同样,响应报文也分为两部分。

前两行称为状态行,状态行给出了服务器的http版本,以及一个响应代码。响应代码是服务器根据请求进行查找后得到的结果的一种反馈,共有5大类。分别以1、2、3、4、5开头。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5seSJ5j-1585216255136)(C:\Users\wangqun\AppData\Roaming\Typora\typora-user-images\image-20200120005454437.png)]

二、HTTP 方法

GET

是向服务器发索取数据的一种请求

当前网络请求中,绝大部分使用的是 GET 方法。

POST

是向服务器提交数据的一种请求

和 GET 方法类似,但是不返回报文实体主体部分。

主要用于确认 URL 的有效性以及资源更新的日期时间等。

HEAD

与 GET 相同,但只返回 HTTP 报头,不返回文档主体

和 GET 方法类似,但是不返回报文实体主体部分。

主要用于确认 URL 的有效性以及资源更新的日期时间等。

PUT(不推荐使用)

上传指定的 URI 表示

PATCH

对资源部分修改

DELETE

删除指定资源

CONNECT

把请求连接转换到透明的 TCP/IP 通道

TRACE

追踪路径

三、HTTP 状态码

状态码 类别 含义
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

四、HTTP 首部

五、具体应用

1. 短连接与长连接

当浏览器访问一个包含多张图片的 HTML 页面时,除了请求访问的 HTML 页面资源,还会请求图片资源。如果每进行一次 HTTP 通信就要新建一个 TCP 连接,那么开销会很大。

长连接只需要建立一次 TCP 连接就能进行多次 HTTP 通信。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值