美文网首页程序员
《图解http》读书笔记

《图解http》读书笔记

作者: DayDayUpppppp | 来源:发表于2017-11-24 21:55 被阅读0次

最近在图书馆写开题报告,写得死去活来的时候,看到角落里面有一本书《图解http》,以前看过影印的pdf的版本,看到纸质书的感觉比影印版好了n倍。于是,这几天叫又重新读了一次,感觉收获良多,写在这里,备忘。

  1. 一个get请求是什么样子的?
    如果一个get请求是 localhost/index.html?id=3 ,对应的http请求是:
    (注意每一行结束的标志是\r\n)
GET /index.html?id=3  http/1.1  \r\n
Connection:keep-alive           \r\n
Host:localhost                  \r\n
User-Agent:xxxxxxx              \r\n
  1. 一个post的请求localhost/index.html?id=3是什么样子的?
    (注意1:post的请求和正文段的区别是两个\r\n\r\n)
    (注意2:content-length:4指的是正文段的长度)
POST /index.html   http/1.1     \r\n
Connection:keep-alive           \r\n
Host:localhost                  \r\n
User-Agent:xxxxxxx              \r\n
content-length:4                \r\n
\r\n\rn
id=3

如果是两个参数的时候,中间是一个&符号来连接。


image.png
  1. 一个响应是什么样子的?
http/1.1 200 ok
Connection:Keep-Alive
Content-Length:691
Content-Type:text/html;charset=UTF-8
Date:Fri, 24 Nov 2017 11:31:30 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.2.21 (Win32) PHP/5.3.8
  1. content-length指的是什么的长度?
    content-length 指的是正文的长度,也就是这个指明了http的正文段在哪里结束。

  2. 服务器如何给浏览器设置cookie?
    通过set-cookie字段来设置cookie
    注意在设置cookie的指定name和value,还需要指定path,domain和expire(有效期)

cache-control:private
content-encoding:gzip
content-type:text/html; charset=utf-8
date:Fri, 24 Nov 2017 12:11:16 GMT
expires:Thu, 19 Nov 1981 08:52:00 GMT
pragma:no-cache
server:nginx
set-cookie:PHPSESSID=gd0p08pn2bbqu9jat2d9lk6bc7; path=/
set-cookie:ssid=gd0p08pn2bbqu9jat2d9lk6bc7; path=/; domain=julyedu.com
  1. 浏览器如何在发送请求的时候,带上自己的cookie?
accept-encoding:gzip, deflate, br
accept-language:zh-CN,zh;q=0.9
cookie:PHPSESSID=gd0p08pn2bbqu9jat2d9lk6bc7; UM_distinctid=15fedf0b80324c-0975573264d798-7b113d-100200-15fedf0b8043ba; ssid=gd0p08pn2bbqu9jat2d9lk6bc7; CNZZDATA1259748782=1283769823-1511524588-https%253A%252F%252Fwww.google.ca%252F%7C1511524588

7.cookie里面会有什么?
除了有name和value之外,比如ssid=1000,还有指定path,domain和expire(有效期)字段。

8.cache-control 是什么?
cache-control既可以在http请求里面的字段出现,也可以在http响应的字段出现。no-cache指令的目的是为了防止从缓存里面返回过期的资源。

cache-control请求字段里面的值,以及代表的含义:

cache-control: no-cache  #强制向源服务器再次验证

cache-control相应字段里面的值,以及代表的含义:

cache-control: public  #可以向任意方提供响应的缓存
cache-control:private  #仅向特定的用户提供缓存

10.transfer-encoding 是什么?

Transfer-Encoding: chunked 之后,就代表这个报文采用了分块编码。这时,报文中的实体需要改为用一系列分块来传输。
  1. 如何利用http实现一个文件的分段下载?
range 字段,每次请求文件的一部分

12.host是什么?在已经指明主机ip的情况下面host字段是不是多余的?
一台主机(一个ip)上面可以配置多台虚拟主机,这样需要host字段来指明是哪一台虚拟主机。

13.状态码200,302,403,403,500分别代表什么含义?

200  :  请求成功
302  :  临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
403 :  服务器理解请求客户端的请求,但是拒绝执行此请求
404 : 找不到
500 : 服务器内部错误,无法完成请求
  1. if-match字段表示什么含义?

  2. http有什么问题,为什么要用https?

1. 明文传输
2. 没有办法验证目的主机的合法性
   比如最简单的把本地的dns文件改成 www.baidu.com  -> 127.0.0.1
   那么,当访问百度的时候,dns就会把ip解析成127.0.0.1改成了其他的地方
3. 内容可以被篡改,content-length只是指定了内容的长度,但是没有指明具体是什么,可以偷偷改http正文段的内容

https就是解决上述的问题

  1. 什么是ajax,为什么要用ajax?
    在不刷新页面的情况下,发送http请求。

  2. 什么是webscoket,为什么要用websocket?
    ajax只是不需要用户去自己发送HTTP请求了,消息的更新机制还是用户发送请求,服务器来响应。服务器始终没有能力去自己主动向浏览器推送消息。websocket就是来解决这个。

  3. web攻击技术有哪些?
    xss :http://cuiqingcai.com/3133.html
    csrf :http://cuiqingcai.com/2076.html
    sql注入

  1. 对于一个域名的请求,一般第一步不是发送http请求,而是先进行dns域名解析,dns解析的过程:
a.查询本地缓存
   1.1 浏览器缓存
       #查看chrome的缓存 ,是缓存就要有有效期,可以多看一眼缓存的有效期,大约是一分钟左右
       chrome://net-internals/#dns
   1.2 系统缓存
        #查看window上dns缓存
        #生存时间在3700秒,大约一个小时
        ipconfig /displaydns
        #ubuntu(nscd :name service cache daemon)
        nscd  -g

b.向dns服务器查询
  1. content-type的种类
text/html           html 文件
text/plain          文本文件
application/pdf     pdf文件
text/css            css文件
application/x-png   x-png文件
  1. https
    关于https 我的理解是 https =http + ssl 。
    HTTPs 采用混合的加密机制,使用公开密钥加密用于传输对称密钥,之后使用对称密钥加密进行通信。

主要过程如下图所示:


  1. 客户机先服务器发送https请求

  2. 服务端的配置
      采用HTTPS协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥。(如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。)

  3. 传送证书

  4. 客户机解析证书
    向ca机构验证证书

  5. 传送加密信息
    这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值。(而这个随机值就是以后服务器和客户机通信的对称密钥了)

  6. 服务段解密信息

  7. 传输加密后的信息

  8. 客户端解密信息

相关文章

网友评论

    本文标题:《图解http》读书笔记

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