HTTP协议

HTTP,全称为超文本传输协议。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议,基于TCP的连接方式。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。


OSI模型,即开放系统互联参考模型,它将计算机网络体系结构的通信协议分为七层。

  • 应用层 ——> 协议有HTTP、FTP、SMTP等
  • 表示层 ——> ASCII码、JPEG、MPEG、WAV等文件转换
  • 会话层 ——> 负责访问次序的安排等
  • 传输层 ——> 协议有TCP、UDP等
  • 网络层 ——> 三层交换机、路由器等属于此层,协议有IP、SPX
  • 数据链路层 ——> 二层交换机、网桥和网卡等属于此层
  • 物理层 ——> 集线器、中继器和传输链路属于此层

HTTP1.1交互过程
客户端与服务器建立连接之后,客户端可以向服务器端发送多个请求,并且在发送下个请求时,无须等待上次请求的返回结果。但是服务器必须按照接受客户端请求的先后顺序依次返回相应结果,以保证客户端能够区分出每次请求的响应内容。


HTTP协议的主要特点

  • 支持C/S模式
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法有GET、HEAD、POST,每种方法规定了客户端和服务器端联系的类型。因为HTTP协议简单,使得HTTP服务器的程序规模小,因此通信速度很快。
  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型有Content-Type加以标记
  • 无连接
  • 无状态

在Web开发中请求操作通常叫做request,响应操作叫做response。
HTTP请求响应报文的流程:
在发送请求的时候,浏览器将用户输入的URL地址等按照HTTP协议的格式封装成了HTTP请求报文,存放在客户端的Socket对象中,服务器从Socket对象中获取报文,并且使用HTTP协议规定的方式进行解析。
例如,客户端需要访问一个页面,服务器会在解析之后将页面的数据响应给客户端,在做出响应的时候,也会将数据封装在HTTP响应报文中,并存放在服务器的Socket对象中,这时客户端从Socket对象中获取响应报文,将响应数据解析成自己可以识别的字符。
例如,返回数据是HTML页面,就渲染HTML和CSS,解析和执行JavaScript代码等。


请求报文

请求报文

  1. 请求行(上图第一行)
    由三部分组成:请求方式(GET)、资源路径(/)、使用的HTTP协议版本(HTTP/1.1)
1. HTTP协议中常用的请求方式主要是GET和POST。

2. 当用户在浏览器地址栏中直接输入某个URL地址或单击网页的一个超链接是,浏览器默认使用GET方式来发送
请求。如果将网页中的form表单的method属性设置为POST,就会以POST方式发送请求。

3. 需要注意的是,GET方式传送的数据量有限,最多不能超过1KB。

4. 由于GET请求方式的参数信息都会在URL中明文显示('?'之后的内容为参数信息),而POST请求方式传递的
参数信息隐藏在实体内容中,用户看不到,因此POST比GET请求方式更安全,实际开发中大多使用的也是POST方式。
  1. 请求消息头
    第二行到Cookie那一行为请求消息头,有key/value组成,每行一对,用':'分割。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
· User-Agent: 产生请求的浏览器类型
· Accept:客户端可识别的响应内容类型列表
· Accept-Language:客户端可接受的自然语言
· Accept-Encoding:客户端可接受的编码压缩格式
· Host:请求的主机名
· connection:连接方式
· Cookie:存储于客户端扩展字段,向同一域名的服务器端发送属于该域的cookie。
  1. 空行
    最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器后面不再有请求头。
  2. 请求体
    其内容是请求数据。请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于用户填写表单的场景。

响应报文

响应报文(不再赘述)

  1. 响应状态行
  2. 响应消息头
  3. 空行
  4. 响应体
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,815评论 6赞 152
  • 本篇文章篇幅比较长,先来个思维导图预览一下。 一、概述 1.计算机网络体系结构分层 2.TCP/IP 通信传输流 ...
    涤生_Woo阅读 56,333评论 24赞 557
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,387评论 3赞 82
  • 前言:最近发现自己在网络相关这一块基础很是欠缺,所以准备花时间了解一下,本文主要是讲http协议的一些基础,和一些...
    justCode_阅读 2,181评论 0赞 23
  • 都说梦是人的第六感官。 又说梦是人真实生活的一种折射。 也有说梦是人类极端情绪的发泄通道。 婴幼儿会在很小很小的时...
    唐薇阅读 389评论 0赞 2

友情链接更多精彩内容