HTTP(超文本传输协议)是一个简单的相应请求协议,他通常运行在TCP之上。 文本:html,字符串 超文本:图片,音乐,视频,定位… 端口号为80
HTTPS:安全的
http1.0:客户端与WEB服务器连接之后,只能获得一个web资源,需要断开连接 http2.0:客户端与web服务器连接之后,可以获得多个web资源
客户端----发出请求(Request)----服务器 以百度为例子:
请求行中的方式:GET 请求方式:GET/POST GET:请求携带的参数较少,大小也有限制,会在浏览器的URL地址栏中显示数据内容,不安全,但是很高效 POST:请求携带的无限制,大小没有限制,不会在浏览器的URL地址栏中显示数据内容,安全,但是不高效
消息头:
服务器----响应---- 客户端 以百度为例:
响应体:
响应状态码:
当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
输入URL之后的流程
1、 URL的解析&合法性判断 2、 HSTS检查 3、安全检查&访问限制 4、缓存检查 5、DNS查询 6、TCP连接 7、发起HTTP/HTTPS连接请求 8、服务器响应请求,浏览器得到HTML代码 9、浏览器解析HTML代码,并请求HTML代码中的资源(js、css、图片等) 10、浏览器对页面进行渲染,并向用户呈现我们最终看到的网页
1、输入地址 首先,只要你输入地址到地址栏,这个时候浏览器可能就开始给你匹配URL了,他会从书签,以及搜索历史里面进行匹配,给出智能提示,要你补全URL地址。
2、浏览器查找域名的IP地址
3、浏览器向Web服务器发送一个HTTP请求 拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。这个连接请求到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序,最终建立了TCP/IP的连接。
建立了TCP连接之后,发起一个http请求。一个典型的 http request header 一般需要包括请求的方法,例如 GET 或者 POST 等,不常用的还有 PUT 和 DELETE 、HEAD、OPTION以及 TRACE 方法,一般的浏览器只能发起 GET 或者 POST 请求。
客户端向服务器发起http请求的时候,会有一些请求信息,请求信息包含三个部分:
请求方法URI协议/版本 请求头(Request Header) 请求正文: