阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      网站的访问过程

      客户端:能够发起请求的都叫客户端;浏览器,移动浏览器,linux,curl,微信 QQ,等

      服务端:能够接受请求的都是叫服务器,需要在特定的机器(IP)上启动特定的端口(port)

      http 协议:

      人与人之间的交流需要

      • 1,媒介,空气;
      • 2,使用双方都能听懂的语言进行沟通;

      计算机之间的交流 A—B:

      • 1,光纤,无线信号;
      • 2,协议和一种数据封装格式;

      普通网站的访问过程;

      • 1,打开浏览器,输入网址确定后,向服务器发起请求;
      • 2,客户端随机开启一个端口进行发送请求,进行域名解析;(浏览器里找缓存—》再操作系统里找—》然后再 host 文件里—》DNS 调用–》到域名服务商的 DNS 缓存里找—》域名服务商给的域名解析到 IP,然后发起 DNS 请求到 IP;)
      • 3,经过三次捂手与服务器连接;
      • 4,正式发起 HTTP 请求的参数和路径;
      • 5,服务器收到浏览器请求后,会解析路径和参数;
      • 6,服务器将生成的页面作为 HTTP 响应的响应提,返回给客户端;
      • 7,客户端接收到响应后,根据响应的内容,开始 HTML 解析;
      • 8,如果解析过程中有外链文件,,JS,CSS, 图片,视频等,会再次发服务器送请求;
      • 9,浏览器用 HTML 和后面的 CSS,JS 进行渲染页面和绑定事件;
      • 10,用户与页面交互的时候,还会执行响应的回调;页面的动态交互,通过 JavaScript 做出响应;
      • 11,页面交互的过程中,可能会需要向服务器请求额外的数据;如果是局部获取数据,可以通过提交表单,走 AJAX 请求;

      命令行里写

      curl http://zhubangbang.com/ 可以访问8080端口;
      
      curl -v http://zhubangbang.com/ 可以详细显示请求头和响应头;如下;
      

      详细信息如下

      *   Trying 103.254.149.117...
      * Connected to zhubangbang.com (103.254.149.117) port 80 (#0)
      请求头
      > GET / HTTP/1.1
      > Host: zhubangbang.com     请求的主机和端口
      > User-Agent: curl/7.47.0   客户端版本
      > Accept: */*               可以接受的文件类型;
      
      响应
      >
      < HTTP/1.1 302 Found
      < Server: nginx
      < Date:  Tue, 24 Nov 2015 16:01:29 GMT
      < Content-Type: text/html; charset=iso-8859-1
      < Content-Length: 208
      < Connection: keep-alive
      < Location: https://zhubangbang.com/
      <
      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <html><head>
      <title>302 Found</title>
      </head><body>
      <h1>Found</h1>
      <p>The document has moved <a href="https://zhubangbang.com/">here</a>.</p>
      </body></html>
      * Connection #0 to host zhubangbang.com left intact
      

      设置头

      curl -H “name:broszhu” -v http://localhost:8080 可以设置头;(用的是冒号)
      

      信息如下

      > GET / HTTP/1.1
      > Host: localhost:8080
      > User-Agent: curl/7.44.0
      > Accept: */*
      > name:broszhu
      >
      < HTTP/1.1 200 OK
      < Date: Tue, 24 Nov 2015 16:09:46 GMT
      < Connection: keep-alive
      < Transfer-Encoding: chunked
      

      头是可以设置多个的;

      curl -H “name:broszhu” –H “age:25” -v http://localhost:8080
      

      请求:

      • 1、基础 HTTP 协议;
      • 2、请求首部;
        • Contection:keep-alive 保持连接,相当于保持连接不中断
        • Content-Type:设置文本格式请求
        • Content-Length:请求的长度,Content-Length:19 name=broszhu&&age=6; 请求长度也会决定请求的方式
      目录
      目录