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

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 通信。

    你可能感兴趣的:(计算机网络,http)