HTTP协议学习笔记

一、HTTP简介

       HTTP超文本传输协议是用于从万维网服务器传输超文本到本地浏览器的传送协议,HTTP基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。

       HTTP协议工作于客户端-服务器架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求,WEB服务器有:Apache服务器、IIS服务器等。WEB服务器根据接收到的请求向客户端发送响应消息,HTTP默认端口号为80,HTTPS为443.

       1)HTTP是无连接的:无连接指限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间;
       2)HTTP是媒体独立的:只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的MIME-type内容类型;
       3)HTTP是状态的:无状态指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快;


屏幕快照 2018-07-26 上午11.11.16.png

二、HTTP消息结构

       1)HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接(TCP)来交换信息,是一个无状态的请求/响应协议;
       2)一个HTTP客户端是一个应用程序,可以是WEB浏览器或其他任何客户端,通过连接到服务器达到向服务器发送一个或多个HTTP请求的目的;
       3)一个HTTP服务器同样也是一个应用程序,通常是一个WEB服务,如Apache web服务器或IIS服务器等,通过接收客户端的请求并向客户端发送HTTP响应数据;
       4)HTTP使用统一资源定位符(URI)来传输数据和建立连接;连接建立后,数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展(MIME)[RFC2045]来传送;


屏幕快照 2018-07-26 上午11.32.53.png

屏幕快照 2018-07-26 上午11.34.47.png

       5)八种HTTP请求方法:GET, POST 、HEAD、OPTIONS、PUT、 DELETE、TRACE 和 CONNECT 方法;
       6)Content-Type:内容类型,指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件;
       7)HTTP请求报文:请求行+请求头+请求体;

屏幕快照 2018-07-26 上午11.36.51.png

组成一:请求行
    (1)作用:声明请求方法、主机域名、资源路径&协议版本;
    (2)结构:请求行的组成=请求方法+请求路径+协议版本;注意:空格不能省;
屏幕快照 2018-07-26 上午11.43.27.png

组成介绍:
屏幕快照 2018-07-26 上午11.46.07.png

get和post的区别:
屏幕快照 2018-07-26 上午11.46.17.png

举例:设请求报文采用GET方法、 URL地址 = http://www.tsinghua.edu.cn/chn/yxsz/index.htm;、HTTP1.1版本
则 请求行是:GET /chn/yxsz/index.htm HTTP/1.1
组成二:请求头
    (1)作用:声明客户端、服务器/报文的部分信息;
    (2)使用方法:采用“header(字段名):value(值)”的方式;
    (3)常用请求头:
            1)请求和响应报文的通用Header:
请求和响应报文的通用Header

            2)常见请求Header:
常见请求Header

            3)应用举例:
            (URL地址:http://www.tsinghua.edu.cn/chn/yxsz/index.htm
            Host:www.tsinghua.edu.cn (表示主机域名)
            User - Agent:Mozilla/5.0 (表示用户代理是使用Netscape浏览器)
组成三:请求体
    (1)作用:存放需发送给服务器的数据信息;可选部分,如GET请求无请求数据;
请求体

总结:
总结

       8)HTTP响应报文:状态行+响应头+响应体

HTTP响应报文

组成一:状态行
    (1)作用:声明协议版本、状态码、状态码描述;
    (2)组成:状态行有协议版本、状态码&状态信息组成;
    注:空格不能省
HTTP响应报文

具体介绍:
响应报文具体介绍

状态行 示例
HTTP/1.1 202 Accepted(接受)HTTP/1.1 404 Not Found(找不到)
组成二:响应头
    (1)作用:声明客户端、服务器/报文的部分信息;
    (2)使用方式:采用“header(字段名):value(值)”r的方式;
    (3)常用响应头:
            1)请求和响应报文的通用Header:
请求和响应报文的通用Header

            2)常见响应header:
常见响应header

组成三:响应体
    (1)作用:存放需返回给客户端的数据信息;
    (2)使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分部分形式;
响应体

响应报文总结:
响应报文总结

三、HTTP和HTTPS的区别

HTTP和HTTPS的区别

四、HTTP处理长连接的方法

HTTP处理长连接的方法

五、form data和request payload的区别

1)post请求时,头文件中Content-Type是默认值application/x-www-form-urlencoded,参数是放在form data中的,如下:


form data

2)post请求时,头文件中Content-Type是默认值application/json;charset=UTF-8时,参数是放在request payload中的;

content-type

推荐阅读更多精彩内容