HTTP协议基础

Doing is better than saying 行胜于言。

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

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

  ://:@/;?#
  
    协议       用户名 密码   主机名 端口号 资源位置 参数  查询字符串  锚点

单看这个是有点懵逼哈,一步一步来,
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 里面是一些请求消息(下图用红线表示部分)
HTTP协议基础_第1张图片
在请求消息中,有三部分组成,分别是请求起始行,请求头,请求主体。

  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 ,不再赘述!

    下面是响应的不同响应状态码
    HTTP协议基础_第2张图片
    下面看一下不同的状态码:(告诉浏览器服务器的响应状态是什么)

取值 表示信息
1XX 100-199 提示信息
2XX 表示成功响应
3XX 301 永久重定向
3XX 302 临时重定向
3XX 304请求未被修改,还是原来的请求,命中缓存
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协议基础_第3张图片

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

你可能感兴趣的:(WEB,http,HTTP,http协议,url,请求/响应,浏览器/服务器)