HTTP协议基础

1 篇文章 0 订阅

Doing is better than saying 行胜于言。

一.HTTP协议
(全称是Hyper Text Transfer Protocol 超文本传输协议,它规范了数据是如何打包和传递的,目前使用的是1.1版本)

1.URL uniform resource locator 这个有很多的名字和俗称有什么统一资源定位符; 统一资源定位器; 全球资源定位器; 统一资源定位; 网址
一般的url格式是
协议+主机名称+目录结构+文件名称
比如 http://www.baidu.com
完整的结构是

  <scheme>://<user>:<pwd>@<host><port>/<path>;<params>?<query>#<frag>
  
    协议       用户名 密码   主机名 端口号 资源位置 参数  查询字符串  锚点

单看这个是有点懵逼哈,一步一步来,
scheme 方案,协议的意思,意思是那种方式来获取浏览器的资源 我们常见的协议有http,https,ftp,那么还有一些其他的协议,详见下表:

常见的协议/默认的端口号作用
ftp -----------------21文件的上传下载
SSH---------------22安全的远程登录
TELNet-----------23远程登录
SMTP------------25邮件传输协议
DNS-------------53域名解析
HTTP-----------80超文本传输
POP3---------110邮件接收
HTTPS-------443加密传输http

2.浏览器请求服务器的简单过程:
我们在浏览器输入网址,比如www.baidu.com,并不是一下子就到了百度的服务器上,而是先到达DNS服务器,进行域名解析,然后DNS会把解析之后的结果反馈回来,当然这个过程客户一般看不到的,解析为61.135.169.125,然后通过这个来请求百度的服务器,然后百度服务器得到请求,进行处理,在其他服务器比如文件系统,数据库,其他服务器获取响应的数据,然后再次响应给浏览器。那么**浏览器如何请求服务器?服务器如何来响应服务器?**他们之间如何传输?请看下一内容

3.HTTP协议规定了客户端和服务器端传递的数据块message(消息/报文)。符合这个规定,浏览器和服务器才能正确运作。

主要分为两部分:A 浏览器请求(Request) B服务器响应(Response)

首先来看请求消息:A 请求消息Request
(你可以尝试着打开一个网页,比如百度,然后打开控制台(按下F12),选择network,刷新网页,见下图,我们首先学习请求消息,下图是直观的一个学习内容)

在Request Headers 里面是一些请求消息(下图用红线表示部分)
在这里插入图片描述
在请求消息中,有三部分组成,分别是请求起始行,请求头,请求主体。

  1. 请求起始行:

    包括请求方法,请求url和协议版本

常见的请求方法是 get 和 post,当然还有其他请求方法:

请求方法具体
get客户端向服务器要数据的时候使用,地址栏查询字符串,无请求主体(Form Data)
post客户端向服务器提交数据的时候使用,隐式发送,有请求主体(Form Data)
delete客户端可以删除服务器的内容(一般禁用)**
put客户端可以向服务器添加内容(一般禁用),比如我能不能在我的银行账户上添加几个0**
connect测试连接
trace追踪请求路径
delete客户端可以删除服务器的内容(一般禁用)**
option选项
head表示客户端只回去响应的消息头

请求url 就是访问的地址链接
协议版本 http/1.1 代表1.1版本

  1. 请求头:
名称作用
host告诉服务器,请求的是哪个主机
Connection:keep-alive告诉服务器进行持久连接
User-agent告诉服务器自己的(浏览器)类型
Accept-Encoding:gzip,deflate告诉服务器自己可以接受的压缩文件类型
Accept-Language告诉服务器自己能接收的自然语言类型
Refer引用/推荐人告诉服务器请求来自于哪个网页

3.请求主体:Form Data

B 服务器响应(Response) 响应消息
同样的,响应消息也是分为三部分,分别是响应起始行,响应头,响应主体。
你会发现,请求消息是从浏览器到服务器思考的,然后响应消息是服务器向浏览器思考。

  1. 1.响应起始行
    包括协议版本响应状态码原因短句(对状态码解释说明)直观看下图

    协议版本 1.1 ,不再赘述!

    下面是响应的不同响应状态码
    在这里插入图片描述
    下面看一下不同的状态码:(告诉浏览器服务器的响应状态是什么)

取值表示信息
1XX 100-199提示信息
2XX表示成功响应
3XX301 永久重定向
3XX302 临时重定向
3XX304请求未被修改,还是原来的请求,命中缓存
4XX客户端请求错误
404 NOT Found请求资源不存在
403 Forbidden权限不够
405 Method not Allowed请求方法不被允许
5XX服务器端运行错误

原因短句,就是对状态码的解释 比如 OK ,NO

  1. 2.响应头
名称作用
Date告诉浏览器服务器响应的时间
Connection:keep-alive告诉浏览器已经启动了持久的连接
Conten-type响应主体的类型(见下)
text/html 响应回来的是html文本
text/plain 普通文本
text/css样式文件
application/javascript js 文件
image/png(jpeg,gif)图片类型
application/json 响应回来的是json格式的字符串
application/xml 响应回来的是xml格式的字符串

3.3响应主体 响应回来的数据
在network中,header 右边第二个
在这里插入图片描述

注:
以上是今日的HTTP协议相关的知识,全部个人原创,严禁任意的转载和包装转载,谢谢!
由于水平有限,要是有不周之处,还望海涵,感谢批评指正!
2019/04/24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值