http协议组成
摘要
本文主要内容介绍什么是http协议
了解http协议之前我们先了解一下当我们输入一个url到页面渲染出来,这个过程发什么了什么呢~
网络开启线程开始解析url
DNS解析域名,查询IP
建立TCP/IP链接
然后发送请求
什么是HTTP协议:
HTTP即超文本传输协议,作为网络协议中的应用层的协议,它是一种文明的协议,传输过程中传输内容对外是可见的。
HTTP的特点:
HTTP协议是基于TCP/IP通信以协议来传递数据的,数据类型可以是JSON、表单、HTML、图片等等
HTTP默认端口号为80
HTTP是协议是无状态的,每一次的请求与响应彼此没有任何关系(这也是为什么产生Session、Cookie、Token的原因)
HTTP请求组成部分
请求行
请求行有请求方法、URL字段、HTTP协议版本号三部分组成
HTTP请求方式:POST GET PUT DELETE OPTIONS等等
在这里需要了解到,HTTP请求也分为简单请求跟复杂请求
那么一个HTTP请求如何满足是简单请求:
1HTTP请求类型为:HEAD、GET、POST
2HTTP头包含:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type
Content-Type仅能是application/x-www-form-urlencoded、multipart/form-data、text/plain之一
复杂请求:
如果不满足简单请求的条件便是复杂请求,一个复杂请求的通信,不仅包含通信内容的请求,而且还包含一个预请求。
简单请求与复杂请求对比:
简单请求
复杂请求
其中预请求的请求类型为OPTIONS
请求头
用来向客户端解释请求信息
请求报头常见属性(这里重点解释常用的):
Accept:可接受响应类型(application/json、text/plain等)
Accept-Charest:可接收的字符集(utf-8等)
Accept-Encoding:可接受的相应内容的编码方式(gzip、deflate等)
Accept-Language:可接受的响应内容语言列表(en-US、zh-CN等)
Authorization:http认证信息(oauth认证)
Cache-Control:缓存机制控制(on-cache、on-store、max-age、public、private)
Connection:客户端优先使用的链接类型(keep-alive、upgrade)
User-Agent:浏览器的身份标识字符串
Origin:发起一个针对跨域资源共享的请求
If-Modified-Since:上一次响应的Last-Modified的值回当做If-Modified-Since的值发送给服务器
If-None-Match:上一次响应的ETag的值会当做If-None-Match的值发送给服务器
Referer:表示跳转到当期那页面的之前页面
消息主题:前台向后台发送的数据
HTTP响应
我们用抓包工具抓取一个响应如图
响应行
响应行由HTTP协议版本号、状态码,以及状态描述三部分组成(例如途中:HTTP/1.1 200 OK)
响应头组成部分
Cache-Control:no-store no-cache max-age等等
Date:响应时间
Expires:新鲜度,通知浏览器过期前可以使用副本
Content-Length:响应内容大小
Content-Type:响应类型
ETag:校验值,校验从服务器端获取内容是否发生改变
响应正文:服务器发送给客户端的内容