HTTP协议

2018-03-23  本文已影响0人  sortinnauto

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


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


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


HTTP协议的主要特点


在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. 响应体
上一篇 下一篇

猜你喜欢

热点阅读