二、http简介

作者: langkong | 来源:发表于2019-03-15 12:56 被阅读9次
什么是请求和响应

如下图所示,我们用自己的电脑,通过浏览器【火狐、ie、chrome等浏览器】在地址栏输入自己想要访问的网站url,回车之后便能看到该网址展示的内容。这个过程就包含了目标网址的请求,远程服务器的请求处理和内容返回,浏览器收到返回内容进行展示。


请求-响应
请求url组成

例如:http://www.dtest.com/learnyii/requirements.php【我本机配置的web服务】或者https://www.yiichina.com/doc/guide/2.0/start-workflow

url包含:

  1. 协议【http/https等】
  2. ip/域名【/www.dtest.com】端口【80/8080等,默认80可以省略】
  3. uri【/learnyii/requirements.php】

网络中每一台电脑都有ip地址,如同人的身份证,能够唯一定位到这台电脑。uri则是资源路径,定位了这台电脑,再加上这个资源路径,就能找到这个资源,并将资源返回给我们的电脑。但是ip地址很难记忆,于是有了域名,一个域名对应一个ip,这个对应关系存储在一台服务器上,这个服务器被命名为dns服务器,这台服务器的任务就是解析域名为其对应的ip地址,请求是通过ip地址寻址到对应电脑的。


具体请求了什么,返回了什么
Request Headers
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: keep-alive
Host: www.dtest.com
Referer: http://www.dtest.com/learnyii/
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.3

请求头携带了:可以接收的内容格式,编码,语言,连接状态,请求主机,我来自的上一个页面地址,使用的什么浏览器。

Response Headers
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Fri, 15 Mar 2019 02:58:12 GMT
Server: nginx/1.15.9
Transfer-Encoding: chunked
X-Powered-By: PHP/7.2.15

响应头包含了连接状态,返回的内容类型和编码,服务端处理请求的软件和版本等

响应体
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Yii Application Requirement Checker</title>
    <style type="text/css">
*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
……

我们真正看到的内容,该响应体是html文本内容,浏览器可以对html标记语言写的内容进行解析,解析成我们看到的那样比较漂亮的样子。

请求发出到返回过程

浏览器地址栏输入url后回车,就会发送请求,首先会去本机hosts找该域名对应的ip,没有则会找dns域名服务器,拿到对应ip,找到网络中要访问的那台电脑,uri则说明了要访问目标电脑上的资源路径,就可以定位该资源。


通过找本机hosts,发现 www.dtemp.com 对应ip为127.0.0.1,即本机,我们使用的nginx配置监听80端口,所以请求被nginx接收。nginx根据web根目录配置和uri /test.php,即可找到该资源。发现是请求的是php文件,则转发请求到9000端口,交给了php-fpm。php-fpm利用php解释器处理完成后返回给nginx,nginx将结果通过http返回给浏览器。

相关文章

  • 二、http简介

    什么是请求和响应 如下图所示,我们用自己的电脑,通过浏览器【火狐、ie、chrome等浏览器】在地址栏输入自己想要...

  • iOS开发之网络通信(2)—— HTTP(S)

    文章目录 一. HTTP发展史二. HTTP简介三. HTTPS简介四. HTTP与HTTPS区别五. 代码部分1...

  • HTTP简介

    本篇文章主要介绍HTTP入门知识,以及演示HTTP请求与响应的过程! 首先需要知道www(万维网)即(World ...

  • HTTP简介

    HTTP请求 HTTP请求分为 GET 和 POST 两种 GET 请求数据 PIST 发送并请求数据 我们可以通...

  • HTTP简介

    本文主要介绍http的请求与响应,如何用Chrome开发者工具查看 HTTP 请求内容,如何用Chrome开发者工...

  • HTTP简介

    HyperText Transfer Protocol——超文本传输协议HTTP协议是因特网上应用最为广泛的一种网...

  • Http 简介

    传统的HTTP服务器的原理: 创建一个ServerSocket,监听并绑定一个端口 一系列客户端来请求这个端口 服...

  • HTTP简介

    2018年4月10号Hyper Text Transfer Protocol(超文本传输协议) 特点:1、简单快速...

  • HTTP简介

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用...

  • HTTP简介

    一、WWW 首先先介绍一些服务器端默认端口 21: ftp服务端口 443: https端口 1080: 代理端口...

网友评论

    本文标题:二、http简介

    本文链接:https://www.haomeiwen.com/subject/ieqlmqtx.html