http请求/响应步骤:
- http客户端发送请求,与web服务端的http默认端口80建立TCP套接字连接
- 通过tcp套接字连接,客户端向服务器发送请求,分为请求行,请求头,空行,请求数据四部分
- 服务器解析请求,将响应由tcp连接返回给客户端,响应分为状态行,响应头,空行,响应数据四部分
- 释放tcp连接,根据connection的模式来释放,若为close模式则返回响应后服务端主动关闭tcp连接,若为keepalive模式则连接会保持一段时间,期间内可以持续访问
- 客户端解析html内容,
1.首先分析状态行判断请求是否成功
2.分析响应头,响应头告知以下为若干字节的HTML文档和文档的字符集
3.客户端分析响应数据,根据HTML的语法对其进行格式化,并显示在客户端窗口界面"
在浏览器中输入URL,会经历什么流程
1.浏览器向DNS服务器发送请求,解析域名对应的ip地址
2.根据ip地址和服务器建立tcp连接
3.浏览器向服务器发送请求,(发出读取文件的HTTP请求,请求作为TCP三次握手的第三个报文的数据发送给服务器)
4.服务器根据请求作出响应,并将对应所需的html文本发送给浏览器
5.释放tcp连接
6.浏览器接收html文本,显示在浏览器窗口
超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:
传送协议。
层级URL标记符号(为[//],固定不变)
访问资源需要的凭证信息(可省略)
服务器。(通常为域名,有时为IP地址)
端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
路径。(以“/”字符区别路径中的每一个目录名称)
查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
片段。以“#”字符为起点
以http://www.luffycity.com:80/news/index.html?id=250&page=1 为例, 其中:
http,是协议;
www.luffycity.com,是服务器;
80,是服务器上的网络端口号;
/news/index.html,是路径;
?id=250&page=1,是查询。
大多数网页浏览器不要求用户输入网页中“http://”的部分,因为绝大多数网页内容是超文本传输协议文件。同样,“80”是超文本传输协议文件的常用端口号,因此一般也不必写明。一般来说用户只要键入统一资源定位符的一部分(www.luffycity.com:80/news/index.html?id=250&page=1)就可以了。