HTTP协议各字段信息

HTTP协议:超文本传输协议,为一个应用层协议;协议只是传输的一种约定,我们也可以自定义一种协议,只不过说有些大佬已经写好,我们用就可以了。
HTTP协议的内容
1)认识URL
所谓的URL就是我们所说的网址-又称统一资源定位符。
URL字段,以及字段信息:
http://username:password@server_ip:server_port/path?query_string
http 为所使用的协议名称
username:password为用户名和密码,但是一般情况下不在此处写,因为太过暴露
server_ip:server_port为服务器的地址信息,以及服务器所用的端口号
/path为资源所在的路径(可能是某个文件,也可能是某个功能)
? 间隔
query_string 用户提交的信息 都是一个一个键值对 key=val&key=val 如果用户中提交的数据中有特殊字符–每个字节按照16进制字符串进行转换。 将特殊字符每个字节,转换为16进制的数字字符串,为了表明这两个字符是经过转码后的数据,因此在字符前加上%加以指明 例如:C++=C%2b%2b
解码操作:遇到%d符号,则取出紧跟其后的两个字符,第一个字符转换为数字左移四位+第二个字符转换的数字。

2)HTTP协议格式:
①首行:
1.: 请求首行: 请求方法:GET(资源的获取)/HEAD(获取报头)/POST(表单提交数据)/PUT(上传)/DELETE(删除)
2.:GET/POST的区别:GET请求没有正文,提交的数据放在url(长度有限4K 8K左右)中(密码放在此中,会被直接显示)。POST提交的数据保存在正文中(用户名密码一般放在此种)②URL
请求方法又称网址
③版本信息
协议版本:0.9(只能请求文GET)/1.0/1.1/2

④响应首行: 协议版本 响应状态码 状态码描述
1.:协议版本吧,表面用的是什么协议
2. :响应状态码:1**/描述信息,比如客户端给服务器发送一个请求,而服务器要处理很久,那么服务器就可以发一个1开头的信息,把客户端稳一稳避免关闭
2**/正确处理 , 一般为 200 OK
3**/重定向,返回一个状态码 例如301 永久重定向(取完资源后之后都在这里访问,不用回到原来地方)302零时重定向(这次访问完成后再回来) ,之后有一个网址,值,之后客户端可重定向到其他位置。(浏览器自动处理)
4**/客户端错误 404无此资源 400格式错误
5**/服务端错误 500内部错误 502服务器连接失败
⑤响应头部
格式:以key:val形式组成的一个个键值对,并且键值对以\r\n作为结尾,里面描述了正文的信息。
*Content-Type: 数据类型(text/html 需要渲染显示等)
*Content-Length: 正文的长度
Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
User-Agent: 声明用户的操作系统和浏览器版本信息,版本觉得服务器该给用户发送什么;
referer: 当前页面是从哪个页面跳转过来的(例如从哪里跳转过来);
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
*Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;,保存用户的认证信息,比例淘宝不用多次登录。
tranfer-Encodig : chunked (分块传输),比如文件比较大的时候,一时间很难直到数据有多大,用这个一块一块发送。

⑥空行:\r\n\r\n 遇到两个头部就结束
⑦正文:提交的数据,相应的数据,要发送的文件等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值