一篇文章让你彻底了解什么是http

Posted moran1992

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇文章让你彻底了解什么是http相关的知识,希望对你有一定的参考价值。

摘要

本文主要内容介绍什么是http协议,什么是https协议,http协议与https协议之间的差别,那么我们开始吧~

了解http协议之前我们先了解一下当我们输入一个url到页面渲染出来,这个过程发什么了什么呢~

网络开启线程开始解析url

DNS解析域名,查询IP

建立TCP/IP链接

然后发送请求

什么是HTTP协议:

HTTP即超文本传输协议,作为网络协议中的应用层的协议,它是一种文明的协议,传输过程中传输内容对外是可见的。

HTTP的特点:

HTTP协议是基于TCP/IP通信以协议来传递数据的,数据类型可以是JSON、表单、html、图片等等

HTTP默认端口号为80

HTTP是协议是无状态的,每一次的请求与响应彼此没有任何关系(这也是为什么产生Session、Cookie、Token的原因)

HTTP组成部分

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的主要内容,如果未能解决你的问题,请参考以下文章

一篇文章让你彻底搞清楚Python中self的含义

图解|从根上彻底理解MySQL的索引

一文让你彻底搞懂 WebSocket 的原理

Linux这篇文章让你彻底搞懂什么是环境变量

一篇文章带你彻底了解HTTP 2.0

操作系统关于多线程同步中的死锁问题一篇文章让你彻底搞明白死锁到底是什么情况及如何解决死锁