1.网络请求的步骤:
1)浏览器中输入URL(网址),浏览器先通过DNS服务器查找URL的域名对应的IP地址。
2)浏览器向IP地址对应的web服务器发送HTTP请求,来获取网页中html文件,web服务器响应请求,将html文件发送回给浏览器。
3)浏览器分析web服务器返回的HTML文件(如图片文件,CSS文件,JS文件)。浏览器会自动再次发送每个文件的HTTP请求,去获取这些文件。
4)当浏览器拿到所有的文件后,浏览器根据HTML语法结构,将所有内容完整渲染出来。
名词解释:
URL:统⼀资源定位符,是⽤于完整地描述Internet上⽹⻚和其他资源的地址的⼀种标识⽅法
基本格式: scheme://host[:port]/path/[?query-string][#anchor]
协议://服务器的域名或IP地址:端口/访问资源的路径[?参数][#锚点]
DNS:计算机域名系统,由解析器和域名服务器组成。
日常生活中的网址也就是域名,本质上时ip地址的别名,通过DNS可以将域名解析成ip地址。
HTTP协议:超文本传输协议。一种发布和接收HTML页面的方法。端口号为 80.
HTTPS :HTTP的安全版,在HTTP下加入SSL层。端口为 443。
SSL :web的安全传输协议,在传输层对网络连接进行加密,保障在internet上数据传输安全。
2,客户端HTTP请求
HTTP通信由两部分组成:
客服端请求消息 《===》服务器响应消息
request-response 模型
客服端发送一个HTTP请求到服务器的请求消息必须包含以下格式:
请求行、请求头部、空行、请求数据
请求方法: GET POST HEAD OPTIONS PUT DELETE TRACE CONNECT。
常用的是 GET POST PUT。
不同的请求方法具有不同的功能。如下图
请求方法
3.HTTP常用请求 GET 和 POST:
GET 获取。 POST 提交并获取。
GET请求参数都显示在URL上,服务器根据该请求所包含URL中的QueryString参数来产⽣响应内容。 "GET" 请求的参数 是URL的⼀部分。请求也能放在请求体重
POST请求参数在请求体Formdata中,消息⻓度没有限制且以隐式的⽅式进⾏发送,通常⽤来向HTTP服务器提交量⽐较⼤的数据(⽐如请求
中包含许多参数或者⽂件上传操作等)。 "POST"请求的参数 通常不在URL中,⽽在请求体中。
3.常用的请求报头。(请求头部)
1)Host(主机和端口号)#服务器的域名或IP地址:端口。
2)Connection (连接类型)
Connection:表示客户端与服务连接类型
1. Client 发起⼀个包含 Connection:keep-alive 的请求(HTTP/1.1使⽤keep-alive 为默认值)
2. Server收到请求后:如果 Server ⽀持 keep-alive,回复⼀个包含 Connection:keep-alive 的响应,不关闭连接;
如果 Server 不⽀持 keep-alive,回复⼀个包含 Connection:close的响应,关闭连接。
3. 如果client收到包含 Connection:keep-alive 的响应,向同⼀个连接发送下⼀个请求,直到⼀⽅主动关闭连接。
Connection : keep-alive 在很多情况下能够重⽤连接,减少资源消耗,缩短响应时间。⽐如当浏览器需要多个⽂件时(⽐如⼀个HTML⽂件和多个Image⽂件),不需要每次都去请求建⽴连接。
3)Upgrade-Insecure-Requests (升级为HTTPS请求)
4)User-Agent (浏览器名称)
5)Accept (传输⽂件类型)
6) Referer (⻚⾯跳转来源)
Referer:表明产⽣请求的⽹⻚来⾃于哪个URL,⽤户是从该 Referer⻚⾯访问到当前请求的⻚⾯。这个属性可以⽤来跟踪Web请求来⾃哪个⻚⾯,是从什么⽹站来的等。
(可以做防盗链)
7) Accept-Encoding(⽂件编解码格式)
如果请求消息中没有设置这个报头,通常服务器假定客户端不⽀持压缩,直接返回⽂本。
8) Accept-Language(语⾔种类)
9) Accept-Charset(字符编码)
10)Cookie (Cookie)
11)Content-Type (POST数据类型)
4.服务端HTTP响应
HTTP响应也由四个部分组成,分别是: 状态⾏ 、 消息报头 、 空⾏ 、 响应、正⽂
Response报文