目录
概述
编辑
一、HTTP协议介绍
二、HTTP工作过程
三、HTTP协议格式
四、HTTP请求方法
五、HTTP状态码
HTTP 协议一般指 HTTP(超文本传输协议)。HTTP协议是基于TCP协议来进行数据传输的
HTTP是一个客户端和服务器端请求和应答的标准,主要用于从万维网(即 WWW ,全称 world wide web )服务器传输超文本到本地浏览器之间的请求数据和响应数据的协议。客户端通过使用网页浏览器或者其它的工具发起一个HTTP请求到服务器上指定端口(默认端口为 80 ),服务器在收到请求之后,返回响应内容(文本.图片等) 。
超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。(HTTP 是为 Web 浏览器与 Web 服务器之间的通信而设计的)
1.请求:请求行、请求头部、空行和请求数据(主体信息)四部分组成
注意:头信息结束后有一个空行,(如果有头信息和主体信息),就需要这个空行做区分,即使没有主体信息,空行也不能少。
(1) 请求行:请求方法,请求路径,所用协议
例:POST /chapter17/user.html HTTP/1.1
请求方法:GET POST PUT DELETE TRACE HEAD OPTIONS PATCH CONNECT
请求路径:URL的一部分
所用协议:目前是HTTP/1.1
(2)请求头部+空行+请求体
Host:描述主机服务器地址
Content-Length:表示body数据的长度
Content-type:表示body数据的格式
Connection:keep-alive,表示长连接,HTTP 长连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。close已关闭
2.响应:响应行+响应头+空行+响应体
(1) 响应行:报文协议及版本,状态码及状态描述
例:HTTP/1.1 200 OK
(2) 响应头:
Location:指定响应的路径,与状态码302配合使用,完成跳转
Content-Type:响应正文的类型
Content-Disposition:通过浏览器以下载方式解析正文
Set-Cookie:与会话相关技术
(3) 响应体:
响应体,响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染 显示页面内容
1.get请求 (重要)
从服务器获取指定的资源,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。
get请求会把请求的参数附加在URL后面,这样是不安全的,在处理敏感数据时不用,或者参数做加密处理。
get请求其实本身HTTP协议并没有限制它的URL大小,但是不同的浏览器对其有不同的大小长度限制
2.post请求(重要)
根据请求负荷(报文body)对指定的资源做出处理,数据发送到服务器以创建或更新资源,侧重于更新数据.
post请求的请求参数都是请求body中
3.put请求
数据发送到服务器以创建或更新资源,侧重于创建数据
4.delete请求
用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容
5.options请求
用来描述了目标资源的通信选项,返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性!
6.head请求
HEAD方法与GET方法相同,但没有响应体,仅传输状态行和标题部分。这对于恢复相应头部编写的元数据非常有用,而无需传输整个内容。
7.connect请求
CONNECT方法用来建立到给定URI标识的服务器的隧道;它通过简单的TCP / IP隧道更改请求连接,通常实使用解码的HTTP代理来进行SSL编码的通信(HTTPS)。
8.trace请求
TRACE方法用于沿着目标资源的路径执行消息环回测试;它回应收到的请求,以便客户可以看到中间服务器进行了哪些(假设任何)进度或增量。
状态码:由3位数字组成,第一个数字定义了响应的类别
1xx:指示信息,表示请求已接收,继续处理
2XX: 表示服务器成功处理了客户端的请求
3XX: 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向
4XX: 客户端错误,请求包含语法错误或无法完成请求
5XX: 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错