HTTP协议——>简单了解TCP/IP协议

HTTP协议———简单认识TCP/IP协议

HTTP协议简介

HTTP协议就是超文本传输协议(HyperText Transfer Protocol),通俗理解是浏览器和web服务器传输数据格式的协议,HTTP协议是一个应用层协议。

HTTP协议是基于TCP协议的,发送数据之前需要建立好连接

HTTP是万维网的数据通信的基础。设计HTTP最初的目的是为了提供一种发布和接收HTML页面<网页>的方法。

HTTP协议的制作者是蒂姆·伯纳斯-李,他供职于CERN(欧洲核子研究组织)

1991年发布的0.9版,该版本极其简单,只有一个GET请求方法
1996年5月,HTTP/1.0版本发布
1997年1月,HTTP/1.1版本发布,目前使用就是HTTP/1.1版本

网络传输-TCP/IP四层模型

TCP/IP模型又称为TCP/IP协议族,是一系列网络协议的总称。TCP/IP模型一共包括几百种协议,制作协议的目的,就是保证计算机之间可以进行按照一定格式进行数据通信。
在这里插入图片描述
1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡.
2.网络层:处理分组在网络中的活动,比如分组的选路.
3.运输层:主要为两台主机上的应用提供端到端的通信.
4.应用层:负责处理特定的应用程序细节.

HTTP协议的工作模式

HTTP协议的工作模式是一次请求(request)和一次响应(response)的模式
在这里插入图片描述

GET / HTTP/1.1
Host: localhost:10000
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7

GET /HTTP/1.1 叫做请求行. 里面包含3个信息, 以空格隔开,

第一个叫做请求方法, 除了 GET 方法之外, 还有 POST 方法, 除此之外还有其他方法, 这两种最常用. GET 主要用于从服务器获得数据, POST 主要用于从浏览器提交数据到服务器. 比如像百度首页提供的上传图片的功能, 就是用POST方式.

第二个表示请求的资源路径. 当请求的URL是 https://www.baidu.com/, 那么我们会发现 路径会显示 ‘/’, 那么如果请求的URL是 https://www.baidu.com/index.html, 我们会发现路径显示是 ‘/index.html’.

第三个表示 HTTP 协议的版本, 那么既然有 1.1版本, 前置版本肯定是1.0了,那么两个版本有什么区别呢? 1.1版本比1.0的版本主要多个一些请求方法等扩充协议的内容.

小结

在这里插入图片描述

HTTP请求报文可以分为GET请求和POST请求报文,要注意的是GET请求没有请求体,POST请求有请求体信息

HTTP 响应报文协议分析

HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Wed, 14 Mar 2018 09:52:48 GMT
Server: BWS/1.1

第一行 HTTP/1.1 200 OK 叫做响应行, 共分成3部分, 第一部分 HTTP/1.1 表示 HTTP协议的版本, 第二部分是一个数字, 这个数字表示响应状态码, 用户向服务器发出了请求, 如果服务器正常返回响应报文, 那么状态码一般都是200, 第三部分的 “OK” 表示原因短语, 表示对前面状态码的简单描述. 这里需要说的是, 响应的状态码除了 200 之外, 还有其他的状态码, 下面是常见的状态码:
在这里插入图片描述

小结

在这里插入图片描述

HTTP协议响应报文分为4部分,每部分之间使用\r\n进行分割

响应行
响应头
空行(\r\n)
响应体

猜你喜欢

转载自blog.csdn.net/weixin_43095575/article/details/94359002