HTTP协议简述

作者: 大炮对着虫子 | 来源:发表于2018-04-16 11:45 被阅读39次

超文本传输协议(HyperText Transfer Protocol,HTTP),是现行互联网应用最广泛的网络协议。最初的HTTP协议设计用于发送和接收HTML。经过发展演变成为客户端和服务器进行请求(Request)和响应(Response)的标准协议。要了解HTTP的运行过程,需要了解大体OSI模型

image.png
由下到上,OSI模型描述了整个网络架构中从基础设置到上层应用的框架。

HTTP是建立在TCP/IP协议之上的应用层协议,HTTP规定了请求和响应的报文格式,由TCP/IP协议簇进行转发,送达目标(服务器)之后,按照HTTP协议可以解析得到报文的意义,并进行响应处理。

image.png

上图描述的是一个简单的HTTP请求过程,其中HTTP主要起到的作用,就是告知客户端和服务器,如何构建报文,如何解析报文,而传输则交给下层TCP/IP协议进行。此外还有一些与通信有关系的程序,也做一下介绍:

代理:接收客户端发送的请求后直接转发给其他服务器(可能会被发送到下一个代理),不会改变URI。(如果有级联的多台代理服务器,当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面添加via头部,并填上自己的相关信息,当下一个代理服务器 收到第一个代理服务器的请求时,会在自己发出的请求里面复制前一个代理服务器的请求的Via头部,并把自己的相关信息加到后面。)缓存代理:请求的内容直接从代理服务器中获取,而不必从源服务器获取。

网关:作用与代理类似,但是可以改变请求的协议,比如讲HTTP协议转换成为私有协议或者其他协议,在两个网关之间传输,达到加密的作用。
隧道:通过和HTTP CONNECT方法,构建服务器和客户端之间的通信线路,可以增加安全线

HTTP1.1 中的请求方法有以下几种

GET: 获取资源
POST: 传输实体主体
PUT: 传输文件,一般不使用,因为不带验证机制,任何人都可以使用PUT来进行文件上传,可以考虑结合表征状态转移(REST Representational State Transfer)或者增加额外的验证机制来配合使用
HEAD: 获取报文首部
DELETE: 删除资源,与PUT一样不带有验证机制
OPTIONS:询问支持的方法
TRACE:追踪路径,让服务器端将之前的请求通信环回路给客户端,主要用于跟踪问题
CONNECT:要求用隧道协议链接代理,一般配合(SSL、TLS) 使用。

状态码则主要有以下几种类别,每一种类别又有细分的状态码

1xx消息——请求已被服务器接收,继续处理
2xx成功——请求已成功被服务器接收、理解、并接受
3xx重定向——需要后续操作才能完成这一请求(304为资源未修改,与3XX有一点差异)
4xx请求错误——请求含有词法错误或者无法被执行
5xx服务器错误——服务器在处理某个正确请求时发生错误

HTTP的一种重要的特性就是协议本身是无状态的,也就是服务器在接受同一个用户发起的请求报文的时候,并无法知道这些请求是由同一个用户发送过来,也无法得知这些请求的上下文关系。而我们平时浏览网页特别是需要进行用户验证类的网页,每一次要求用户进行身份验证并不合理。为解决这个问题,就发展出Cookie技术。
Cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态。从服务器返回的报文中,通过set-cookie首部字段,添加cookie(由服务器生成,并通常做加密处理),客户端收到返回报文之后会保存cookie,当下一次客户端向服务器发送请求的时候,会在请求中加入cookie值后发送。服务器获取到cookie之后,会对比之前服务器上的记录(session),从而对请求进行状态识别。
cookie具有长度限制,不同的浏览器之间有细微的差异,一般不能超过4097个字节,超过这个数量的cookie在请求的时候,浏览器会直接忽略。

本文出处:
http://qiongsong.com/web/2015/03/07/brief-http/

相关文章

  • HTTP协议简述

    超文本传输协议(HyperText Transfer Protocol,HTTP),是现行互联网应用最广泛的网络协...

  • HTTP协议简述

    HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于...

  • 简述http协议

    转 https://www.cnblogs.com/haiyan123/p/7777924.html

  • 网络协议学习

    Http、TCP、UDP 、Socket 简述 HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于...

  • 浅谈HTTP协议

    一、HTTP简述 1.Http协议概述 超文本传输协议(HyperText Transfer Tansfer Pr...

  • HTTP粗略入门小白篇

    HTTP简述 HTTP协议,即超文本传输协议(HyperText Transfer Protocol),是一种用于...

  • HTTP 协议总结

    一、HTTP 协议概念简述 HTTP 协议请求的是 Resource 资源;资源由 URL (统一资源定位符:Un...

  • HTTPS(一): HTTPS协议概述、功能介绍

    一、前言 二、HTTPS协议概述 2.1 简述 2.2 HTTP 和 TLS 在协议层的位置以及TLS协议的组成 ...

  • 架构的高可用高性能keepalived和varnish

    1、简述HA cluster原理2、keepalived实现主从、主主架构3、简述http协议缓存原理及常用首部讲...

  • 《图解http》笔记

    呵呵,天知道我为什么要写这个。 Http基础简述http协议(超文本传输协议)为了Web上的信息共享而诞生三个版本...

网友评论

    本文标题:HTTP协议简述

    本文链接:https://www.haomeiwen.com/subject/libskftx.html