一次完整的http请求过程


(1)发起请求建立连接;  三次握手 接收请求或拒绝请求


(2)接受请求


来自网络的请求报文中对某资源的一次请求过程;

并发访问响应模型(Web I/O);

单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应

多进程I/:并行启动多个进程,每个进程响应一个请求

复用I/O结构:一个进程响应n个请求:

多线程模型:一个进程生成n个线程,每个线程响应一个请求;

事件驱动机制:event-driven

复用的多进程I/O结构:启动多个(m)进程,每个进程响应n个请求;

(3) 处理请求 ;对请求报文进行解析,并获取请求资源及请求方法等相关信息


元数据: 请求报文首部

<method> <URL> <VERSION>

Host:www.magedu.com 请求主机名称

Connection:


(4)访问资源 : 获取请求报文中请求的资源


web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后的资源;这些资源放置于本地文件系统某路径下,此路径通常称为文档根(DocRoot)

web服务器资源路径映射方式:

(a)docroot

(b)alias

(c)虚拟机docroot

(d)家目录docroot


(5)构建响应报文

资源MIME资源:

显示分类

魔法分类

协商分类

URL重定向:

web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;


(6)发送响应报文


    (7)记录日志


最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务

https实现


安装ssl这个模块

    yum install mod_ssl
    cat /etc/pki/tls/openssl.cnf

如果忘记格式内容可以查看上述配置文件文件


生成自签发证书CA

    cd /etc/pki/CA/(umask 066;openssl genrsa -out private/cakey.pem 2048)openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650openssl x509 -in cacert.pem -noout -text查看自签名证书touch index.txtecho 00 > serial

目录树如下格式

    [root@ZhangLin CA]#tree    .├── cacert.pem├── certs├── crl├── index.txt├── newcerts├── private│   └── cakey.pem└── serial

生成私钥,既然是提供给web服务器使用,最好将私钥放在服务器自己的配置文件里,也可以单独建一个文件夹专门管理

    cd /etc/httpd/conf.d/    mkdir ssl
    cd ssl/ 私钥请求和证书都放在这里

生成私钥,申请证书

                    (umask 066;openssl genrsa -out httpd.key 1024)                    openssl req -new -key httpd.key -out httpd.csr

将证书申请传给CA

                    scp httpd.csr 192.168.77.7:/etc/pki/CA/

签发证书

                    openssl ca -in httpd.csr -out certs/httpd.crt -days 363

颁发证书

                    scp certs/httpd.crt 192.168.77.6:/etc/httpd/conf.d/ssl/

配web服务器,让web服务器用到这些证书

scp cacert.pem 192.168.77.6:/etc/httpd/conf.d/ssl/
                    [root@bixia66 ssl]#tree                    .├── cacert.pem├── httpd.crt├── httpd.csr└── httpd.key
在  /etc/httpd/conf.d/ssl.conf这个配置文件中将证书的路径,和key的路径指定好
            SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt                    SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.keySSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem

将根证书导入到受信任的颁发机构

修改host文件C:\Windows\System32\drivers\etc\host

192.168.77.6 www.a.com

转载于:https://blog.51cto.com/13157090/1971001

一次完整的http的请求过程与https的实现相关推荐

  1. PHP完整的一次请求过程:请求 dns nginx监听 转发给php-fpm worker处理 返给nginx

    (1) 在本机浏览器中输入网址:my.test.com (2)请求中的域名经过域名服务器变成IP地址: (3) 监听的nginx接收到此次请求,由于这是一次Http请求,所以nginx的核心模块会把它 ...

  2. 客户端浏览器一次http完整请求过程流程图(图文结合诠释请求过程)

    先上一张图给大家看看 http请求流程图 相信看完这张图后大家对一次请求也有了大致的了解了,当前其中还有很多细节小编没有画出来,然后我们来看看部分过程的细节 所以其流程大致如下: ①:DNS解析域名得 ...

  3. WireShark 探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)

    ​当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传 ...

  4. python 爬虫001-http请求过程

    HTTP 请求流程 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HT ...

  5. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  6. struts2请求过程源代码分析

    struts2请求过程源代码分析 Struts2是Struts社区和WebWork社区的共同成果.我们甚至能够说,Struts2是WebWork的升级版.他採用的正是WebWork的核心,所以.Str ...

  7. 【Android开发】计算机网络基础知识点,如何完成网络请求过程?

    (一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...

  8. WireShark抓包 图解探索网络请求过程(五层网络模型、三次握手、滑动窗口协议)

    当我们在浏览器输入URL点击确认后,浏览器展示出网页信息.可你曾想过这其中的过程是怎样的?理论性较强的朋友可能知道后续DNS会解析地址,然后TCP/IP三次握手建立起连接,紧接着客户端与服务器开始传输 ...

  9. 简述HTTP请求过程

    HTTP(HyperText Transfer Protocol)超文本传输协议,是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP 是一个简单的请求-响应协议,是客户端和服务端之间请求和 ...

最新文章

  1. 亿图图示线条不要箭头
  2. win7怎么清理java缓存文件夹_Win7怎么清除浏览器缓存?清除电脑缓存的妙招
  3. 傅里叶变换 直观_A / B测试的直观模拟
  4. Glob Patterns匹配模式使用
  5. springboot导包显示不存在_(一)SpringBoot搭建基本后端应用
  6. Linux协议栈:基于ping流程窥探Linux网络子系统,及常用优化方法
  7. mysql中只运行一部分数据_MySQL(一)——MySQL基础和部分面试题
  8. 家庭医生后台管理系统高保真Axure原型模板
  9. 在线vim配色加term与gui统一颜色调整python脚本
  10. 如何使用html写一个简单的登录页面
  11. Python数据分析第四课:数据的处理(数据合并、数据筛选、数据排序)
  12. c语言单片机秒表程序,单片机秒表程序
  13. book mac pro怎么重装系统_苹果13英寸新MacBook Pro怎么重装win7系统
  14. Markdown目录生成
  15. Spring Cloud Gateway 没有链路信息,我 TM 人傻了(下)
  16. 论文阅读三:基于改进人工蜂群算法的SDN负载均衡策略研究
  17. 京东有多少钱可以重来?
  18. php artisan migrate,laravel php artisan migrate错误
  19. P5108 仰望半月的夜空 SAM+线段树覆盖
  20. IF函数多个条件判断及嵌套

热门文章

  1. Eclipse jar包打不进apk
  2. Android中Intent/Bundle的通信原理及大小限制(Parcelable原理及与Serializable的区别)
  3. Git本地分支版本过低导致的push错误 error: failed to push some refs to ... 及后续amend
  4. 随便聊一些编程开发工具
  5. ubuntu 虚拟机安装
  6. 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
  7. TestCenter中测试需求、测试用例、测试计划的评审方法
  8. windows连接投影仪后桌面画面和白板画面不一致
  9. 如何将Wav文件做到EXE文件里
  10. php数据访问(查询)